{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导包\n",
    "import pandas as pd \n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集数据:\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>887</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>Montvila, Rev. Juozas</td>\n",
       "      <td>male</td>\n",
       "      <td>27.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>211536</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>888</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Graham, Miss. Margaret Edith</td>\n",
       "      <td>female</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>112053</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>B42</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>889</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Johnston, Miss. Catherine Helen \"Carrie\"</td>\n",
       "      <td>female</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>W./C. 6607</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>890</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Behr, Mr. Karl Howell</td>\n",
       "      <td>male</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>111369</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>C148</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>891</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Dooley, Mr. Patrick</td>\n",
       "      <td>male</td>\n",
       "      <td>32.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>370376</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Survived  Pclass  \\\n",
       "0              1         0       3   \n",
       "1              2         1       1   \n",
       "2              3         1       3   \n",
       "3              4         1       1   \n",
       "4              5         0       3   \n",
       "..           ...       ...     ...   \n",
       "886          887         0       2   \n",
       "887          888         1       1   \n",
       "888          889         0       3   \n",
       "889          890         1       1   \n",
       "890          891         0       3   \n",
       "\n",
       "                                                  Name     Sex   Age  SibSp  \\\n",
       "0                              Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1    Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                               Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3         Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                             Allen, Mr. William Henry    male  35.0      0   \n",
       "..                                                 ...     ...   ...    ...   \n",
       "886                              Montvila, Rev. Juozas    male  27.0      0   \n",
       "887                       Graham, Miss. Margaret Edith  female  19.0      0   \n",
       "888           Johnston, Miss. Catherine Helen \"Carrie\"  female   NaN      1   \n",
       "889                              Behr, Mr. Karl Howell    male  26.0      0   \n",
       "890                                Dooley, Mr. Patrick    male  32.0      0   \n",
       "\n",
       "     Parch            Ticket     Fare Cabin Embarked  \n",
       "0        0         A/5 21171   7.2500   NaN        S  \n",
       "1        0          PC 17599  71.2833   C85        C  \n",
       "2        0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3        0            113803  53.1000  C123        S  \n",
       "4        0            373450   8.0500   NaN        S  \n",
       "..     ...               ...      ...   ...      ...  \n",
       "886      0            211536  13.0000   NaN        S  \n",
       "887      0            112053  30.0000   B42        S  \n",
       "888      2        W./C. 6607  23.4500   NaN        S  \n",
       "889      0            111369  30.0000  C148        C  \n",
       "890      0            370376   7.7500   NaN        Q  \n",
       "\n",
       "[891 rows x 12 columns]"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导入数据\n",
    "train_data=pd.read_csv('train.csv')\n",
    "print(\"训练集数据:\\n\")\n",
    "train_data#数据一共有12行 因为没有行索引 所以采用的默认索引0开始"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 12 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  891 non-null    int64  \n",
      " 1   Survived     891 non-null    int64  \n",
      " 2   Pclass       891 non-null    int64  \n",
      " 3   Name         891 non-null    object \n",
      " 4   Sex          891 non-null    object \n",
      " 5   Age          714 non-null    float64\n",
      " 6   SibSp        891 non-null    int64  \n",
      " 7   Parch        891 non-null    int64  \n",
      " 8   Ticket       891 non-null    object \n",
      " 9   Fare         891 non-null    float64\n",
      " 10  Cabin        204 non-null    object \n",
      " 11  Embarked     889 non-null    object \n",
      "dtypes: float64(2), int64(5), object(5)\n",
      "memory usage: 83.7+ KB\n"
     ]
    }
   ],
   "source": [
    "#看一下数据的分析\n",
    "train_data.info()#一共891行数据 Age Cabin Embarked三行有数据缺失 探索一下数据 然后看填充策略"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试数据:\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>892</td>\n",
       "      <td>3</td>\n",
       "      <td>Kelly, Mr. James</td>\n",
       "      <td>male</td>\n",
       "      <td>34.5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>330911</td>\n",
       "      <td>7.8292</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>893</td>\n",
       "      <td>3</td>\n",
       "      <td>Wilkes, Mrs. James (Ellen Needs)</td>\n",
       "      <td>female</td>\n",
       "      <td>47.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>363272</td>\n",
       "      <td>7.0000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>894</td>\n",
       "      <td>2</td>\n",
       "      <td>Myles, Mr. Thomas Francis</td>\n",
       "      <td>male</td>\n",
       "      <td>62.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>240276</td>\n",
       "      <td>9.6875</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>895</td>\n",
       "      <td>3</td>\n",
       "      <td>Wirz, Mr. Albert</td>\n",
       "      <td>male</td>\n",
       "      <td>27.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>315154</td>\n",
       "      <td>8.6625</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>896</td>\n",
       "      <td>3</td>\n",
       "      <td>Hirvonen, Mrs. Alexander (Helga E Lindqvist)</td>\n",
       "      <td>female</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3101298</td>\n",
       "      <td>12.2875</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>413</th>\n",
       "      <td>1305</td>\n",
       "      <td>3</td>\n",
       "      <td>Spector, Mr. Woolf</td>\n",
       "      <td>male</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>A.5. 3236</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>414</th>\n",
       "      <td>1306</td>\n",
       "      <td>1</td>\n",
       "      <td>Oliva y Ocana, Dona. Fermina</td>\n",
       "      <td>female</td>\n",
       "      <td>39.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17758</td>\n",
       "      <td>108.9000</td>\n",
       "      <td>C105</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>415</th>\n",
       "      <td>1307</td>\n",
       "      <td>3</td>\n",
       "      <td>Saether, Mr. Simon Sivertsen</td>\n",
       "      <td>male</td>\n",
       "      <td>38.5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>SOTON/O.Q. 3101262</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>416</th>\n",
       "      <td>1308</td>\n",
       "      <td>3</td>\n",
       "      <td>Ware, Mr. Frederick</td>\n",
       "      <td>male</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>359309</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>417</th>\n",
       "      <td>1309</td>\n",
       "      <td>3</td>\n",
       "      <td>Peter, Master. Michael J</td>\n",
       "      <td>male</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2668</td>\n",
       "      <td>22.3583</td>\n",
       "      <td>NaN</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>418 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Pclass                                          Name  \\\n",
       "0            892       3                              Kelly, Mr. James   \n",
       "1            893       3              Wilkes, Mrs. James (Ellen Needs)   \n",
       "2            894       2                     Myles, Mr. Thomas Francis   \n",
       "3            895       3                              Wirz, Mr. Albert   \n",
       "4            896       3  Hirvonen, Mrs. Alexander (Helga E Lindqvist)   \n",
       "..           ...     ...                                           ...   \n",
       "413         1305       3                            Spector, Mr. Woolf   \n",
       "414         1306       1                  Oliva y Ocana, Dona. Fermina   \n",
       "415         1307       3                  Saether, Mr. Simon Sivertsen   \n",
       "416         1308       3                           Ware, Mr. Frederick   \n",
       "417         1309       3                      Peter, Master. Michael J   \n",
       "\n",
       "        Sex   Age  SibSp  Parch              Ticket      Fare Cabin Embarked  \n",
       "0      male  34.5      0      0              330911    7.8292   NaN        Q  \n",
       "1    female  47.0      1      0              363272    7.0000   NaN        S  \n",
       "2      male  62.0      0      0              240276    9.6875   NaN        Q  \n",
       "3      male  27.0      0      0              315154    8.6625   NaN        S  \n",
       "4    female  22.0      1      1             3101298   12.2875   NaN        S  \n",
       "..      ...   ...    ...    ...                 ...       ...   ...      ...  \n",
       "413    male   NaN      0      0           A.5. 3236    8.0500   NaN        S  \n",
       "414  female  39.0      0      0            PC 17758  108.9000  C105        C  \n",
       "415    male  38.5      0      0  SOTON/O.Q. 3101262    7.2500   NaN        S  \n",
       "416    male   NaN      0      0              359309    8.0500   NaN        S  \n",
       "417    male   NaN      1      1                2668   22.3583   NaN        C  \n",
       "\n",
       "[418 rows x 11 columns]"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#看一下测试集的数据\n",
    "test_data=pd.read_csv('test.csv')\n",
    "print(\"测试数据:\\n\")\n",
    "test_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 418 entries, 0 to 417\n",
      "Data columns (total 11 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  418 non-null    int64  \n",
      " 1   Pclass       418 non-null    int64  \n",
      " 2   Name         418 non-null    object \n",
      " 3   Sex          418 non-null    object \n",
      " 4   Age          332 non-null    float64\n",
      " 5   SibSp        418 non-null    int64  \n",
      " 6   Parch        418 non-null    int64  \n",
      " 7   Ticket       418 non-null    object \n",
      " 8   Fare         417 non-null    float64\n",
      " 9   Cabin        91 non-null     object \n",
      " 10  Embarked     418 non-null    object \n",
      "dtypes: float64(2), int64(4), object(5)\n",
      "memory usage: 36.0+ KB\n"
     ]
    }
   ],
   "source": [
    "test_data.info()#同样也是Age Cabin Embarked缺失 Fare中也有一个缺失"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24.00    30\n",
       "22.00    27\n",
       "18.00    26\n",
       "19.00    25\n",
       "30.00    25\n",
       "         ..\n",
       "55.50     1\n",
       "70.50     1\n",
       "66.00     1\n",
       "23.50     1\n",
       "0.42      1\n",
       "Name: Age, Length: 88, dtype: int64"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#先做测试集的数据填充吧 \n",
    "#看一下数据集的分布情况\n",
    "train_data['Age'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#做一下直方图的可视化\n",
    "plt.bar(train_data['Age'].value_counts().index,train_data['Age'].value_counts().values)#横轴是年龄的值，纵轴是年龄的数量\n",
    "plt.title(\"age in train_data\")\n",
    "plt.xlabel(\"age\")\n",
    "plt.ylabel(\"num\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#同理做一下测试集中的age可视化\n",
    "plt.bar(test_data['Age'].value_counts().index,test_data['Age'].value_counts().values)#横轴是年龄的值，纵轴是年龄的数量\n",
    "plt.title(\"age in test_data\")\n",
    "plt.xlabel(\"age\")\n",
    "plt.ylabel(\"num\")\n",
    "plt.show()#观察好了数据之后 发现数据age这种数据最好用平局填充吧"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 168,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#开始用age的均值来填充数据\n",
    "train_data['Age'].fillna(train_data['Age'].mean(),inplace=True)\n",
    "train_data['Age'].isnull().any()#train_data的Age这一列已经没有缺失值了  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#同理测试集也处理一下\n",
    "test_data['Age'].fillna(train_data['Age'].mean(),inplace=True)\n",
    "test_data['Age'].isnull().any()#test_data的Age这一列已经没有缺失值了  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.7500     21\n",
       "26.0000    19\n",
       "8.0500     17\n",
       "13.0000    17\n",
       "7.8958     11\n",
       "           ..\n",
       "9.3250      1\n",
       "14.4583     1\n",
       "15.0333     1\n",
       "25.4667     1\n",
       "21.0750     1\n",
       "Name: Fare, Length: 169, dtype: int64"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#测试集中的Fare有一个缺失值 先看一下测试集中的Fare的数据分布情况\n",
    "test_data['Fare'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "看下data['Fare']里面的统计之后有哪些值： [7.75, 26.0, 8.05, 13.0, 7.8958, 10.5, 7.775, 7.2292, 7.225, 8.6625, 7.8542, 21.0, 26.55, 7.8792, 27.7208, 7.25, 7.925, 262.375, 211.5, 69.55, 14.5, 7.55, 7.7958, 15.2458, 55.4417, 31.3875, 31.5, 14.4542, 9.5, 221.7792, 39.0, 134.5, 16.1, 23.0, 65.0, 13.775, 13.5, 59.4, 7.7333, 83.1583, 7.05, 29.7, 20.575, 46.9, 263.0, 164.8667, 75.2417, 13.9, 151.55, 12.1833, 11.5, 0.0, 73.5, 15.5, 32.5, 36.75, 6.4375, 60.0, 57.75, 93.5, 7.0, 22.525, 15.0458, 22.025, 12.35, 7.65, 51.8625, 13.8583, 136.7792, 79.2, 23.45, 82.2667, 21.6792, 81.8583, 42.5, 106.425, 3.1708, 8.1125, 50.0, 27.4458, 15.9, 31.6833, 61.9792, 12.2875, 45.5, 52.5542, 30.0, 27.75, 16.0, 10.7083, 13.4167, 211.3375, 15.7417, 8.7125, 16.7, 9.6875, 29.0, 7.8292, 15.55, 30.5, 71.2833, 15.1, 135.6333, 512.3292, 8.9625, 29.125, 20.25, 12.7375, 61.3792, 52.0, 15.75, 42.4, 7.8208, 23.25, 56.4958, 28.5, 18.0, 12.875, 31.6792, 90.0, 51.4792, 24.15, 15.5792, 7.7792, 7.2833, 25.7417, 37.0042, 14.1083, 25.7, 146.5208, 7.8875, 8.5167, 39.6, 53.1, 9.35, 63.3583, 41.5792, 7.5792, 14.4, 50.4958, 39.4, 34.375, 7.7208, 7.85, 76.2917, 7.725, 9.225, 39.6875, 75.25, 13.8625, 6.95, 61.175, 78.85, 20.2125, 247.5208, 7.575, 28.5375, 227.525, 108.9, 6.4958, 7.6292, 47.1, 22.3583, 17.4, 9.325, 14.4583, 15.0333, 25.4667, 21.075]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"看下data['Fare']里面的统计之后有哪些值：\",test_data['Fare'].value_counts().index.tolist())\n",
    "#同理做一下可视化\n",
    "plt.bar(test_data['Fare'].value_counts().index,test_data['Fare'].value_counts().values)#横轴是Fare的值，纵轴是Fare的数量\n",
    "plt.title(\"Fare in test_data\")\n",
    "plt.xlabel(\"Fare\")\n",
    "plt.ylabel(\"num\")\n",
    "plt.show()#感觉这一行的数据用众数填充充吧  毕竟是票价 就那几个票价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    7.75\n",
      "dtype: float64 <class 'pandas.core.series.Series'>\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 172,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(test_data['Fare'].mode(),type(test_data['Fare'].mode()))#注意这里用众数填充 mode()之后是个serise \n",
    "test_data['Fare'].fillna(test_data['Fare'].mode()[0],inplace=True)#要mode()[0]才能拿到具体的数字 否则这里填充不了\n",
    "test_data['Fare'].isnull().sum()#test_data的Age这一列已经没有缺失值了  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "看一下有多少缺失值: 687\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "G6             4\n",
       "B96 B98        4\n",
       "C23 C25 C27    4\n",
       "E101           3\n",
       "F33            3\n",
       "              ..\n",
       "D28            1\n",
       "B37            1\n",
       "F G63          1\n",
       "D6             1\n",
       "F38            1\n",
       "Name: Cabin, Length: 147, dtype: int64"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#训练集和测试集中的 Cabin 都有确实 需要填充  \n",
    "#还是看下数据的分布\n",
    "print('看一下有多少缺失值:',train_data['Cabin'].isnull().sum())\n",
    "train_data['Cabin'].value_counts()  #缺失值太多 直接删除吧 而且分布很杂乱 类别太多"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data=train_data.drop(columns = ['Cabin'])\n",
    "test_data=test_data.drop(columns = ['Cabin'])#删除操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>887</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>Montvila, Rev. Juozas</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>211536</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>888</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Graham, Miss. Margaret Edith</td>\n",
       "      <td>female</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>112053</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>889</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Johnston, Miss. Catherine Helen \"Carrie\"</td>\n",
       "      <td>female</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>W./C. 6607</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>890</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Behr, Mr. Karl Howell</td>\n",
       "      <td>male</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>111369</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>891</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Dooley, Mr. Patrick</td>\n",
       "      <td>male</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>370376</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Survived  Pclass  \\\n",
       "0              1         0       3   \n",
       "1              2         1       1   \n",
       "2              3         1       3   \n",
       "3              4         1       1   \n",
       "4              5         0       3   \n",
       "..           ...       ...     ...   \n",
       "886          887         0       2   \n",
       "887          888         1       1   \n",
       "888          889         0       3   \n",
       "889          890         1       1   \n",
       "890          891         0       3   \n",
       "\n",
       "                                                  Name     Sex        Age  \\\n",
       "0                              Braund, Mr. Owen Harris    male  22.000000   \n",
       "1    Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.000000   \n",
       "2                               Heikkinen, Miss. Laina  female  26.000000   \n",
       "3         Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.000000   \n",
       "4                             Allen, Mr. William Henry    male  35.000000   \n",
       "..                                                 ...     ...        ...   \n",
       "886                              Montvila, Rev. Juozas    male  27.000000   \n",
       "887                       Graham, Miss. Margaret Edith  female  19.000000   \n",
       "888           Johnston, Miss. Catherine Helen \"Carrie\"  female  29.699118   \n",
       "889                              Behr, Mr. Karl Howell    male  26.000000   \n",
       "890                                Dooley, Mr. Patrick    male  32.000000   \n",
       "\n",
       "     SibSp  Parch            Ticket     Fare Embarked  \n",
       "0        1      0         A/5 21171   7.2500        S  \n",
       "1        1      0          PC 17599  71.2833        C  \n",
       "2        0      0  STON/O2. 3101282   7.9250        S  \n",
       "3        1      0            113803  53.1000        S  \n",
       "4        0      0            373450   8.0500        S  \n",
       "..     ...    ...               ...      ...      ...  \n",
       "886      0      0            211536  13.0000        S  \n",
       "887      0      0            112053  30.0000        S  \n",
       "888      1      2        W./C. 6607  23.4500        S  \n",
       "889      0      0            111369  30.0000        C  \n",
       "890      0      0            370376   7.7500        Q  \n",
       "\n",
       "[891 rows x 11 columns]"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#删除之后看看\n",
    "train_data #已经没有Cabin那一列了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>892</td>\n",
       "      <td>3</td>\n",
       "      <td>Kelly, Mr. James</td>\n",
       "      <td>male</td>\n",
       "      <td>34.500000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>330911</td>\n",
       "      <td>7.8292</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>893</td>\n",
       "      <td>3</td>\n",
       "      <td>Wilkes, Mrs. James (Ellen Needs)</td>\n",
       "      <td>female</td>\n",
       "      <td>47.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>363272</td>\n",
       "      <td>7.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>894</td>\n",
       "      <td>2</td>\n",
       "      <td>Myles, Mr. Thomas Francis</td>\n",
       "      <td>male</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>240276</td>\n",
       "      <td>9.6875</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>895</td>\n",
       "      <td>3</td>\n",
       "      <td>Wirz, Mr. Albert</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>315154</td>\n",
       "      <td>8.6625</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>896</td>\n",
       "      <td>3</td>\n",
       "      <td>Hirvonen, Mrs. Alexander (Helga E Lindqvist)</td>\n",
       "      <td>female</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3101298</td>\n",
       "      <td>12.2875</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>413</th>\n",
       "      <td>1305</td>\n",
       "      <td>3</td>\n",
       "      <td>Spector, Mr. Woolf</td>\n",
       "      <td>male</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>A.5. 3236</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>414</th>\n",
       "      <td>1306</td>\n",
       "      <td>1</td>\n",
       "      <td>Oliva y Ocana, Dona. Fermina</td>\n",
       "      <td>female</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17758</td>\n",
       "      <td>108.9000</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>415</th>\n",
       "      <td>1307</td>\n",
       "      <td>3</td>\n",
       "      <td>Saether, Mr. Simon Sivertsen</td>\n",
       "      <td>male</td>\n",
       "      <td>38.500000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>SOTON/O.Q. 3101262</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>416</th>\n",
       "      <td>1308</td>\n",
       "      <td>3</td>\n",
       "      <td>Ware, Mr. Frederick</td>\n",
       "      <td>male</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>359309</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>417</th>\n",
       "      <td>1309</td>\n",
       "      <td>3</td>\n",
       "      <td>Peter, Master. Michael J</td>\n",
       "      <td>male</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2668</td>\n",
       "      <td>22.3583</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>418 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Pclass                                          Name  \\\n",
       "0            892       3                              Kelly, Mr. James   \n",
       "1            893       3              Wilkes, Mrs. James (Ellen Needs)   \n",
       "2            894       2                     Myles, Mr. Thomas Francis   \n",
       "3            895       3                              Wirz, Mr. Albert   \n",
       "4            896       3  Hirvonen, Mrs. Alexander (Helga E Lindqvist)   \n",
       "..           ...     ...                                           ...   \n",
       "413         1305       3                            Spector, Mr. Woolf   \n",
       "414         1306       1                  Oliva y Ocana, Dona. Fermina   \n",
       "415         1307       3                  Saether, Mr. Simon Sivertsen   \n",
       "416         1308       3                           Ware, Mr. Frederick   \n",
       "417         1309       3                      Peter, Master. Michael J   \n",
       "\n",
       "        Sex        Age  SibSp  Parch              Ticket      Fare Embarked  \n",
       "0      male  34.500000      0      0              330911    7.8292        Q  \n",
       "1    female  47.000000      1      0              363272    7.0000        S  \n",
       "2      male  62.000000      0      0              240276    9.6875        Q  \n",
       "3      male  27.000000      0      0              315154    8.6625        S  \n",
       "4    female  22.000000      1      1             3101298   12.2875        S  \n",
       "..      ...        ...    ...    ...                 ...       ...      ...  \n",
       "413    male  29.699118      0      0           A.5. 3236    8.0500        S  \n",
       "414  female  39.000000      0      0            PC 17758  108.9000        C  \n",
       "415    male  38.500000      0      0  SOTON/O.Q. 3101262    7.2500        S  \n",
       "416    male  29.699118      0      0              359309    8.0500        S  \n",
       "417    male  29.699118      1      1                2668   22.3583        C  \n",
       "\n",
       "[418 rows x 10 columns]"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data#Cabin那一列确实删除了   测试集比训练集少了一个Survived"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2\n"
     ]
    }
   ],
   "source": [
    "#训练集 Embarked 要用众数填充一下 有两个缺失值\n",
    "print(train_data['Embarked'].isnull().sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "S    644\n",
       "C    168\n",
       "Q     77\n",
       "Name: Embarked, dtype: int64"
      ]
     },
     "execution_count": 178,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#看一下数据分布\n",
    "train_data['Embarked'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAWm0lEQVR4nO3df7RdZX3n8fcHgkLlR0DSFJNoqES7aIuIEdGqVWgtoJ1QRdTllOCkpjMLtR11LNZZo466FF0WYeHgZKQSrYKUikRhBAxQWhVrQBoEpKRITCI/LsgPEcUBv/PHee725HKT3JCce25y36+1zjp7P/vZ+3zPOXedz93PPnufVBWSJAHsMuwCJElTh6EgSeoYCpKkjqEgSeoYCpKkjqEgSeoYCpKkjqGgKSnJOUk+uB23974kf7cdtvOyJOs3s/yhJL+5rY8zLNv7ddeOx1DQdpPk9iQ/ax+Mo7czh13XZKqqPavqtq1dL8n8JJVkxrbWMFkf7EmuSvJng34cTa5t/gOUxvjjqvr6sIvotz0+aKXpwj0FTYokJyX5RpLTktyf5LYkL2rt65LcnWTxmNX2T3J5kp8k+cckz+jb3ultvQeTXJvkJX3L3pfkgiR/l+RB4KQxteyW5Nwk/5DkSUme1qZHkvwgydv6+u7R/vO+L8lNwPO38DwryUFt+pwkn0xycXsO307yzE2senW7v7/tYb2wbeM/Jbm5Pf6lo69Bek5rr9uDSW5I8jtJlgJvBN7VtvOVLdT73CTXtfq+COzet2zfJF9tr8t9bXpuW/Yh4CXAmf17hJt7X7RjMBQ0mV4ArAaeCnwBOI/eh+xBwH+k9wGzZ1//NwIfAPYHrgc+37fsO8ChwH5tW3+fZPe+5YuAC4CZ/esl2QP4MvAIcALwKPAV4F+BOcBRwF8m+aO2ynuBZ7bbHwFjg2tLXg+8H9gXWAN8aBP9XtruZ7YhqG8lWQT8NfBqYBbwT8C5rd8r2jrPAvZpz+XeqlrWnu9H23b+eFOFJXkSvdfic/Rex78HXtPXZRfgM8AzgKcDPwPOBKiq97R63tIe5y1tnS29L5rqqsqbt+1yA24HHgLu77u9uS07Cbi1r+/vAgXM7mu7Fzi0TZ8DnNe3bE/gMWDeJh77PuA5bfp9wNVjlr8PWAH8I3AGkNb+AuCHY/q+G/hMm74NOLpv2VJg/WZegwIO6nsOn+5bdizw/U2sN7+tO6Ov7f8CS/rmdwEepvchfSTwb8ARwC5jtnUO8MEJvF8vBX40+lq0tm9ual16H/b39c1fBfzZFh6je1+87Rg3x1q1vR1Xmz6mcFff9M8AqmpsW/+ewrrRiap6KMmPgacB65K8E1jS5gvYm94exePW7XMEsBvwhmqfWPQ+YJ+W5P6+frvS+y+Y0cfrW7Z2E89tU+7sm36YjZ/fljwDOD3Jx/vaAsypqivakM0ngWck+RLwzqp6cCu2/zRgQ99rAX3PL8mvAacBR9Pb0wHYK8muVfXYeBucwPuiKc7hI01l80Yn2rDSfsCP2jj1u+gNmexbVTOBB+h9YI4a75rwlwEfBlYmmd3a1gE/qKqZfbe9qurYtvyO/jroDaMMwnj1rgP+fExte1TVNwGq6oyqeh5wML1hpP+2mW2N5w5gTpL+163/+b0DeDbwgqram18NcY323+hxJvi+aIozFDSVHZvkxW3s+wPANVW1DtiL3rGAEWBGkv9B7z/SLaqqj9Ib616ZZH/gX4CfJPmrdlB513bAdvSA8vnAu9tB17nAW7fvU+yMAL8E+s9x+FR77N8GSLJPkte26ecneUGS3YCfAj9v60Nvj2wi50p8i97r+LZ28P3VwOF9y/eit/d2f5L96B1f6Tf2cZ7w+6Kpw1DQ9vaVbHyewoXbsK0v0Psg+jHwPHoHowEuBb5Gb0x9Lb0PxPGGi8ZVVR+gd4D16/QO0r6K3nj5D4B7gE+3dugdJF7bll1G76DsdldVD9M7CP2N9L6ddURVXQicCpzXvkX1PeCYtsrewP+hN2a/lt7xmI+1ZWcDB7ftfHkzj/kLegexT6L3Gr8O+FJfl08Ae9B7Ta6h95r3Ox04vn0z6Qy28X3R1JCNhxMlSdOZewqSpI7fPpJ2YkmeDty0icUHV9UPJ7MeTX0OH0mSOjv0nsL+++9f8+fPH3YZkrRDufbaa++pqlnjLduhQ2H+/PmsWrVq2GVI0g4lySZPwvRAsySpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSps0Of0bwt5p9y8bBL2Gnd/pFXDrsESU+QewqSpI6hIEnqGAqSpI6hIEnqGAqSpI6hIEnqGAqSpI6hIEnqGAqSpI6hIEnqDDQUksxMckGS7ye5OckLk+yX5PIkt7b7fVvfJDkjyZokq5McNsjaJEmPN+g9hdOBr1XVbwHPAW4GTgFWVtUCYGWbBzgGWNBuS4GzBlybJGmMgYVCkn2AlwJnA1TVL6rqfmARsLx1Ww4c16YXAZ+tnmuAmUkOGFR9kqTHG+SewoHACPCZJN9N8ukkTwFmV9Udrc+dwOw2PQdY17f++ta2kSRLk6xKsmpkZGSA5UvS9DPIUJgBHAacVVXPBX7Kr4aKAKiqAmprNlpVy6pqYVUtnDVr1nYrVpI02FBYD6yvqm+3+QvohcRdo8NC7f7utnwDMK9v/bmtTZI0SQYWClV1J7AuybNb01HATcAKYHFrWwxc1KZXACe2byEdATzQN8wkSZoEg/7ltbcCn0/yJOA24E30guj8JEuAtcAJre8lwLHAGuDh1leSNIkGGgpVdT2wcJxFR43Tt4CTB1mPJGnzPKNZktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQZaCgkuT3JDUmuT7Kqte2X5PIkt7b7fVt7kpyRZE2S1UkOG2RtkqTHm4w9hZdX1aFVtbDNnwKsrKoFwMo2D3AMsKDdlgJnTUJtkqQ+wxg+WgQsb9PLgeP62j9bPdcAM5McMIT6JGnaGnQoFHBZkmuTLG1ts6vqjjZ9JzC7Tc8B1vWtu761bSTJ0iSrkqwaGRkZVN2SNC3NGPD2X1xVG5L8OnB5ku/3L6yqSlJbs8GqWgYsA1i4cOFWrStJ2ryB7ilU1YZ2fzdwIXA4cNfosFC7v7t13wDM61t9bmuTJE2SgYVCkqck2Wt0GngF8D1gBbC4dVsMXNSmVwAntm8hHQE80DfMJEmaBIMcPpoNXJhk9HG+UFVfS/Id4PwkS4C1wAmt/yXAscAa4GHgTQOsTZI0joGFQlXdBjxnnPZ7gaPGaS/g5EHVI0naMs9oliR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1Bh4KSXZN8t0kX23zByb5dpI1Sb6Y5Emt/cltfk1bPn/QtUmSNjYZewp/AdzcN38qcFpVHQTcByxp7UuA+1r7aa2fJGkSDTQUkswFXgl8us0HOBK4oHVZDhzXphe1edryo1p/SdIkGfSewieAdwG/bPNPBe6vqkfb/HpgTpueA6wDaMsfaP03kmRpklVJVo2MjAywdEmafgYWCkleBdxdVdduz+1W1bKqWlhVC2fNmrU9Ny1J096MAW7794D/kORYYHdgb+B0YGaSGW1vYC6wofXfAMwD1ieZAewD3DvA+iRJYwxsT6Gq3l1Vc6tqPvB64IqqeiNwJXB867YYuKhNr2jztOVXVFUNqj5J0uMN4zyFvwLenmQNvWMGZ7f2s4Gntva3A6cMoTZJmtYGOXzUqaqrgKva9G3A4eP0+Tnw2smoR5I0Ps9oliR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUmdCX0lNMhM4EZjfv05VvW0gVUmShmKi5ylcAlwD3MCvLm4nSdrJTDQUdq+qtw+0EknS0E30mMLnkrw5yQFJ9hu9DbQySdKkm+iewi+AjwHvAUYvUlfAbw6iKEnScEw0FN4BHFRV9wyyGEnScE10+GgN8PAgC5EkDd9E9xR+Clyf5ErgkdFGv5IqSTuXiYbCl9tNkrQTm1AoVNXyQRciSRq+iZ7R/AN+9a2jTlX57SNJ2olMdPhoYd/07vR+Ic3zFCRpJzOhbx9V1b19tw1V9QnglYMtTZI02SY6fHRY3+wu9PYcJuX3nSVJk2eiH+wf51fHFB4Fbqc3hCRJ2olMNBSOAV7DxpfOfj3wPwdQkyRpSLbmPIX7geuAnw+qGEnScE00FOZW1dFbs+EkuwNXA09uj3NBVb03yYHAecBTgWuBP62qXyR5MvBZ4HnAvcDrqur2rXlMSdK2mei1j76Z5He3ctuPAEdW1XOAQ4GjkxwBnAqcVlUHAfcBS1r/JcB9rf201k+SNIkmGgovBq5NckuS1UluSLJ6cytUz0Ntdrd2K+BI4ILWvhw4rk0vavO05UclyQTrkyRtB1tzoHmrJdmV3hDRQcAngX8H7q+qR1uX9cCcNj0HWAdQVY8meYDeENM9Y7a5FFgK8PSnP/2JlCVJ2oSJXvto7RPZeFU9BhyaZCZwIfBbT2Q7Y7a5DFgGsHDhwsddekOS9MRNdPhom1TV/cCVwAuBmUlGw2gusKFNbwDmAbTl+9A74CxJmiQDC4Uks9oeAkn2AP4QuJleOBzfui0GLmrTK9o8bfkVVeWegCRNokFequIAYHk7rrALcH5VfTXJTcB5ST4IfBc4u/U/G/hckjXAj+mdHCdJmkQDC4WqWg08d5z224DDx2n/OV46Q5KGalKOKUiSdgyGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjqGgiSpYyhIkjoDC4Uk85JcmeSmJDcm+YvWvl+Sy5Pc2u73be1JckaSNUlWJzlsULVJksY3yD2FR4F3VNXBwBHAyUkOBk4BVlbVAmBlmwc4BljQbkuBswZYmyRpHAMLhaq6o6qua9M/AW4G5gCLgOWt23LguDa9CPhs9VwDzExywKDqkyQ93qQcU0gyH3gu8G1gdlXd0RbdCcxu03OAdX2rrW9tY7e1NMmqJKtGRkYGV7QkTUMDD4UkewL/APxlVT3Yv6yqCqit2V5VLauqhVW1cNasWduxUknSQEMhyW70AuHzVfWl1nzX6LBQu7+7tW8A5vWtPre1SZImySC/fRTgbODmqvqbvkUrgMVtejFwUV/7ie1bSEcAD/QNM0mSJsGMAW7794A/BW5Icn1r+2vgI8D5SZYAa4ET2rJLgGOBNcDDwJsGWJskaRwDC4Wq+mcgm1h81Dj9Czh5UPVIkrbMM5olSR1DQZLUMRQkSR1DQZLUMRQkSZ1BfiVV2q7mn3LxsEvYad3+kVcOuwRNEe4pSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6hoIkqWMoSJI6AwuFJH+b5O4k3+tr2y/J5Ulubff7tvYkOSPJmiSrkxw2qLokSZs2yD2Fc4Cjx7SdAqysqgXAyjYPcAywoN2WAmcNsC5J0iYMLBSq6mrgx2OaFwHL2/Ry4Li+9s9WzzXAzCQHDKo2SdL4JvuYwuyquqNN3wnMbtNzgHV9/da3NknSJBrageaqKqC2dr0kS5OsSrJqZGRkAJVJ0vQ12aFw1+iwULu/u7VvAOb19Zvb2h6nqpZV1cKqWjhr1qyBFitJ081kh8IKYHGbXgxc1Nd+YvsW0hHAA33DTJKkSTJjUBtOci7wMmD/JOuB9wIfAc5PsgRYC5zQul8CHAusAR4G3jSouiRJmzawUKiqN2xi0VHj9C3g5EHVIkmaGM9oliR1DAVJUmdgw0eSNP+Ui4ddwk7r9o+8ciDbdU9BktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktQxFCRJHUNBktSZUqGQ5OgktyRZk+SUYdcjSdPNlAmFJLsCnwSOAQ4G3pDk4OFWJUnTy5QJBeBwYE1V3VZVvwDOAxYNuSZJmlZmDLuAPnOAdX3z64EXjO2UZCmwtM0+lOSWSahtKtgfuGfYRUxETh12BVPCDvN+ge9ZM53es2dsasFUCoUJqaplwLJh1zHZkqyqqoXDrkMT4/u14/E965lKw0cbgHl983NbmyRpkkylUPgOsCDJgUmeBLweWDHkmiRpWpkyw0dV9WiStwCXArsCf1tVNw65rKlk2g2Z7eB8v3Y8vmdAqmrYNUiSpoipNHwkSRoyQ0GS1DEUprgk70lyY5LVSa5P8rhzNzS1JPmNJOcl+fck1ya5JMmzhl2XxpdkbpKLktya5LYkZyZ58rDrGhZDYQpL8kLgVcBhVXUI8AdsfIKfppgkAS4ErqqqZ1bV84B3A7OHW5nG096vLwFfrqoFwAJgD+CjQy1siKbMt480rgOAe6rqEYCq2mHOtpzGXg78v6r61GhDVf3rEOvR5h0J/LyqPgNQVY8l+a/A2iTvqaqHhlve5HNPYWq7DJiX5N+S/K8kvz/sgrRFvwNcO+wiNGG/zZj3q6oeBG4HDhpGQcNmKExh7b+U59G71tMI8MUkJw21KEk7NUNhiquqx6rqqqp6L/AW4DXDrkmbdSO9INeO4SbGvF9J9gZ+A5guF9vciKEwhSV5dpIFfU2HAmuHVI4m5grgye1qvgAkOSTJS4ZYkzZtJfBrSU6E7nddPg6cWVU/G2plQ2IoTG17AsuT3JRkNb0fH3rfcEvS5lTvEgF/AvxB+0rqjcCHgTuHW5nG0/d+HZ/kVuBe4JdV9aHhVjY8XuZCkpokLwLOBf6kqq4bdj3DYChIkjoOH0mSOoaCJKljKEiSOoaCJKljKGhaSvJYu+rs6O2UrVj3ZUm+uo2Pf1WSJ/Qj8UnOSXL8tjy+tCleEE/T1c+q6tBhPHA7QUqaktxTkPokuT3Jh9vew6okhyW5tJ2I9p/7uu6d5OIktyT5VJJd2vpntfVuTPL+Mds9Ncl1wGv72ndp//l/MMmuST6W5Dvt9zP+vPVJu8b/LUm+Dvz6JL0cmoYMBU1Xe4wZPnpd37Iftr2IfwLOAY4HjgDe39fncOCt9M4yfybw6tb+nqpaCBwC/H6SQ/rWubeqDquq89r8DODzwK1V9d+BJcADVfV84PnAm5McSO+M22e3xzoReNF2eQWkcTh8pOlqc8NHK9r9DcCeVfUT4CdJHkkysy37l6q6DSDJucCLgQuAE9p1j2bQ+z2Mg4HVbZ0vjnmc/w2c33dJhVcAh/QdL9iH3o++vBQ4t6oeA36U5Ion8oSliXBPQXq8R9r9L/umR+dH/5EaeymAav/VvxM4qv1S3sXA7n19fjpmnW8CL08y2ifAW6vq0HY7sKou28bnIm0VQ0F6Yg5PcmA7lvA64J+Bvel98D+QZDZwzBa2cTZwCXB+khnApcB/SbIbQJJnJXkKcDXwunbM4QB6v+4mDYTDR5qu9khyfd/816pqwl9LBb4DnEnv17muBC6sql8m+S7wfXq/pf2NLW2kqv4myT7A54A3AvOB69pvB48Ax9H7zecj6V37/4fAt7aiTmmreEE8SVLH4SNJUsdQkCR1DAVJUsdQkCR1DAVJUsdQkCR1DAVJUuf/A+rwr+U0krzHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化一下\n",
    "#同理做一下可视化\n",
    "plt.bar(train_data['Embarked'].value_counts().index,train_data['Embarked'].value_counts().values)#横轴是Fare的值，纵轴是Fare的数量\n",
    "plt.title(\"Embarked in test_data\")\n",
    "plt.xlabel(\"Embarked\")\n",
    "plt.ylabel(\"num\")\n",
    "plt.show()#感觉这一行的数据用众数填充充吧  毕竟是票价 就那几个票价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    S\n",
      "dtype: object <class 'pandas.core.series.Series'>\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 180,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#用众数填充一下\n",
    "print(train_data['Embarked'].mode(),type(train_data['Embarked'].mode()))#注意这里用众数填充 mode()之后是个serise \n",
    "train_data['Embarked'].fillna(train_data['Embarked'].mode()[0],inplace=True)#要mode()[0]才能拿到具体的数字 否则这里填充不了\n",
    "train_data['Embarked'].isnull().sum()#test_data的Age这一列已经没有缺失值了  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 11 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  891 non-null    int64  \n",
      " 1   Survived     891 non-null    int64  \n",
      " 2   Pclass       891 non-null    int64  \n",
      " 3   Name         891 non-null    object \n",
      " 4   Sex          891 non-null    object \n",
      " 5   Age          891 non-null    float64\n",
      " 6   SibSp        891 non-null    int64  \n",
      " 7   Parch        891 non-null    int64  \n",
      " 8   Ticket       891 non-null    object \n",
      " 9   Fare         891 non-null    float64\n",
      " 10  Embarked     891 non-null    object \n",
      "dtypes: float64(2), int64(5), object(4)\n",
      "memory usage: 76.7+ KB\n"
     ]
    }
   ],
   "source": [
    "#以上算是完成了数据清洗和填充  然后来检查一下 是否还有缺失的情况\n",
    "train_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 418 entries, 0 to 417\n",
      "Data columns (total 10 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  418 non-null    int64  \n",
      " 1   Pclass       418 non-null    int64  \n",
      " 2   Name         418 non-null    object \n",
      " 3   Sex          418 non-null    object \n",
      " 4   Age          418 non-null    float64\n",
      " 5   SibSp        418 non-null    int64  \n",
      " 6   Parch        418 non-null    int64  \n",
      " 7   Ticket       418 non-null    object \n",
      " 8   Fare         418 non-null    float64\n",
      " 9   Embarked     418 non-null    object \n",
      "dtypes: float64(2), int64(4), object(4)\n",
      "memory usage: 32.8+ KB\n"
     ]
    }
   ],
   "source": [
    "test_data.info()#训练集和测试集都没有缺失值了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>male</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass     Sex        Age  SibSp  Parch     Fare Embarked\n",
       "0         3    male  22.000000      1      0   7.2500        S\n",
       "1         1  female  38.000000      1      0  71.2833        C\n",
       "2         3  female  26.000000      0      0   7.9250        S\n",
       "3         1  female  35.000000      1      0  53.1000        S\n",
       "4         3    male  35.000000      0      0   8.0500        S\n",
       "..      ...     ...        ...    ...    ...      ...      ...\n",
       "886       2    male  27.000000      0      0  13.0000        S\n",
       "887       1  female  19.000000      0      0  30.0000        S\n",
       "888       3  female  29.699118      1      2  23.4500        S\n",
       "889       1    male  26.000000      0      0  30.0000        C\n",
       "890       3    male  32.000000      0      0   7.7500        Q\n",
       "\n",
       "[891 rows x 7 columns]"
      ]
     },
     "execution_count": 183,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 特征选择\n",
    "features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']#选择了这7个特征   一共11行\n",
    "train_features = train_data[features]#PassengerId   Name Ticket  这三个没有选 因为意义感觉不是很大         \n",
    "train_features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 184,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(train_features.Embarked.str.get_dummies())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>C</th>\n",
       "      <th>Q</th>\n",
       "      <th>S</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     C  Q  S\n",
       "0    0  0  1\n",
       "1    1  0  0\n",
       "2    0  0  1\n",
       "3    0  0  1\n",
       "4    0  0  1\n",
       "..  .. .. ..\n",
       "886  0  0  1\n",
       "887  0  0  1\n",
       "888  0  0  1\n",
       "889  1  0  0\n",
       "890  0  1  0\n",
       "\n",
       "[891 rows x 3 columns]"
      ]
     },
     "execution_count": 185,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_features.Embarked.str.get_dummies()#将 Embarked 这列特征ont-hot编码处理一下"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>male</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>Q</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass     Sex        Age  SibSp  Parch     Fare Embarked\n",
       "0         3    male  22.000000      1      0   7.2500        S\n",
       "1         1  female  38.000000      1      0  71.2833        C\n",
       "2         3  female  26.000000      0      0   7.9250        S\n",
       "3         1  female  35.000000      1      0  53.1000        S\n",
       "4         3    male  35.000000      0      0   8.0500        S\n",
       "..      ...     ...        ...    ...    ...      ...      ...\n",
       "886       2    male  27.000000      0      0  13.0000        S\n",
       "887       1  female  19.000000      0      0  30.0000        S\n",
       "888       3  female  29.699118      1      2  23.4500        S\n",
       "889       1    male  26.000000      0      0  30.0000        C\n",
       "890       3    male  32.000000      0      0   7.7500        Q\n",
       "\n",
       "[891 rows x 7 columns]"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>male</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass     Sex        Age  SibSp  Parch     Fare\n",
       "0         3    male  22.000000      1      0   7.2500\n",
       "1         1  female  38.000000      1      0  71.2833\n",
       "2         3  female  26.000000      0      0   7.9250\n",
       "3         1  female  35.000000      1      0  53.1000\n",
       "4         3    male  35.000000      0      0   8.0500\n",
       "..      ...     ...        ...    ...    ...      ...\n",
       "886       2    male  27.000000      0      0  13.0000\n",
       "887       1  female  19.000000      0      0  30.0000\n",
       "888       3  female  29.699118      1      2  23.4500\n",
       "889       1    male  26.000000      0      0  30.0000\n",
       "890       3    male  32.000000      0      0   7.7500\n",
       "\n",
       "[891 rows x 6 columns]"
      ]
     },
     "execution_count": 187,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data_hot_encoded=train_features.drop('Embarked',1)#Embarked 这一列删除了 \n",
    "train_data_hot_encoded"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>C</th>\n",
       "      <th>Q</th>\n",
       "      <th>S</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>male</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>male</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass     Sex        Age  SibSp  Parch     Fare  C  Q  S\n",
       "0         3    male  22.000000      1      0   7.2500  0  0  1\n",
       "1         1  female  38.000000      1      0  71.2833  1  0  0\n",
       "2         3  female  26.000000      0      0   7.9250  0  0  1\n",
       "3         1  female  35.000000      1      0  53.1000  0  0  1\n",
       "4         3    male  35.000000      0      0   8.0500  0  0  1\n",
       "..      ...     ...        ...    ...    ...      ... .. .. ..\n",
       "886       2    male  27.000000      0      0  13.0000  0  0  1\n",
       "887       1  female  19.000000      0      0  30.0000  0  0  1\n",
       "888       3  female  29.699118      1      2  23.4500  0  0  1\n",
       "889       1    male  26.000000      0      0  30.0000  1  0  0\n",
       "890       3    male  32.000000      0      0   7.7500  0  1  0\n",
       "\n",
       "[891 rows x 9 columns]"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data_hot_encoded=train_data_hot_encoded.join(train_features.Embarked.str.get_dummies())#这样就把Embarked 登陆港口由字母转换成了one-hot\n",
    "train_data_hot_encoded"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>C</th>\n",
       "      <th>Q</th>\n",
       "      <th>S</th>\n",
       "      <th>female</th>\n",
       "      <th>male</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass        Age  SibSp  Parch     Fare  C  Q  S  female  male\n",
       "0         3  22.000000      1      0   7.2500  0  0  1       0     1\n",
       "1         1  38.000000      1      0  71.2833  1  0  0       1     0\n",
       "2         3  26.000000      0      0   7.9250  0  0  1       1     0\n",
       "3         1  35.000000      1      0  53.1000  0  0  1       1     0\n",
       "4         3  35.000000      0      0   8.0500  0  0  1       0     1\n",
       "..      ...        ...    ...    ...      ... .. .. ..     ...   ...\n",
       "886       2  27.000000      0      0  13.0000  0  0  1       0     1\n",
       "887       1  19.000000      0      0  30.0000  0  0  1       1     0\n",
       "888       3  29.699118      1      2  23.4500  0  0  1       1     0\n",
       "889       1  26.000000      0      0  30.0000  1  0  0       0     1\n",
       "890       3  32.000000      0      0   7.7500  0  1  0       0     1\n",
       "\n",
       "[891 rows x 10 columns]"
      ]
     },
     "execution_count": 189,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#同理 sex这一列  也经过同样的转换  不过一部到位\n",
    "train_data_hot_encoded=train_data_hot_encoded.drop('Sex',1).join( train_data_hot_encoded['Sex'].str.get_dummies() )\n",
    "train_data_hot_encoded#这样算是完成了特征的选择 以及 特征的抽取  都是数字类型 可以用计算机算法来转换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>C</th>\n",
       "      <th>Q</th>\n",
       "      <th>S</th>\n",
       "      <th>female</th>\n",
       "      <th>male</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Pclass</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.331339</td>\n",
       "      <td>0.083081</td>\n",
       "      <td>0.018443</td>\n",
       "      <td>-0.549500</td>\n",
       "      <td>-0.243292</td>\n",
       "      <td>0.221009</td>\n",
       "      <td>0.074053</td>\n",
       "      <td>-0.131900</td>\n",
       "      <td>0.131900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <td>-0.331339</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.232625</td>\n",
       "      <td>-0.179191</td>\n",
       "      <td>0.091566</td>\n",
       "      <td>0.032024</td>\n",
       "      <td>-0.013855</td>\n",
       "      <td>-0.019336</td>\n",
       "      <td>-0.084153</td>\n",
       "      <td>0.084153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SibSp</th>\n",
       "      <td>0.083081</td>\n",
       "      <td>-0.232625</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.414838</td>\n",
       "      <td>0.159651</td>\n",
       "      <td>-0.059528</td>\n",
       "      <td>-0.026354</td>\n",
       "      <td>0.068734</td>\n",
       "      <td>0.114631</td>\n",
       "      <td>-0.114631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Parch</th>\n",
       "      <td>0.018443</td>\n",
       "      <td>-0.179191</td>\n",
       "      <td>0.414838</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.216225</td>\n",
       "      <td>-0.011069</td>\n",
       "      <td>-0.081228</td>\n",
       "      <td>0.060814</td>\n",
       "      <td>0.245489</td>\n",
       "      <td>-0.245489</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fare</th>\n",
       "      <td>-0.549500</td>\n",
       "      <td>0.091566</td>\n",
       "      <td>0.159651</td>\n",
       "      <td>0.216225</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.269335</td>\n",
       "      <td>-0.117216</td>\n",
       "      <td>-0.162184</td>\n",
       "      <td>0.182333</td>\n",
       "      <td>-0.182333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C</th>\n",
       "      <td>-0.243292</td>\n",
       "      <td>0.032024</td>\n",
       "      <td>-0.059528</td>\n",
       "      <td>-0.011069</td>\n",
       "      <td>0.269335</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.148258</td>\n",
       "      <td>-0.782742</td>\n",
       "      <td>0.082853</td>\n",
       "      <td>-0.082853</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q</th>\n",
       "      <td>0.221009</td>\n",
       "      <td>-0.013855</td>\n",
       "      <td>-0.026354</td>\n",
       "      <td>-0.081228</td>\n",
       "      <td>-0.117216</td>\n",
       "      <td>-0.148258</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.499421</td>\n",
       "      <td>0.074115</td>\n",
       "      <td>-0.074115</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>S</th>\n",
       "      <td>0.074053</td>\n",
       "      <td>-0.019336</td>\n",
       "      <td>0.068734</td>\n",
       "      <td>0.060814</td>\n",
       "      <td>-0.162184</td>\n",
       "      <td>-0.782742</td>\n",
       "      <td>-0.499421</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.119224</td>\n",
       "      <td>0.119224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>-0.131900</td>\n",
       "      <td>-0.084153</td>\n",
       "      <td>0.114631</td>\n",
       "      <td>0.245489</td>\n",
       "      <td>0.182333</td>\n",
       "      <td>0.082853</td>\n",
       "      <td>0.074115</td>\n",
       "      <td>-0.119224</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.131900</td>\n",
       "      <td>0.084153</td>\n",
       "      <td>-0.114631</td>\n",
       "      <td>-0.245489</td>\n",
       "      <td>-0.182333</td>\n",
       "      <td>-0.082853</td>\n",
       "      <td>-0.074115</td>\n",
       "      <td>0.119224</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Pclass       Age     SibSp     Parch      Fare         C         Q  \\\n",
       "Pclass  1.000000 -0.331339  0.083081  0.018443 -0.549500 -0.243292  0.221009   \n",
       "Age    -0.331339  1.000000 -0.232625 -0.179191  0.091566  0.032024 -0.013855   \n",
       "SibSp   0.083081 -0.232625  1.000000  0.414838  0.159651 -0.059528 -0.026354   \n",
       "Parch   0.018443 -0.179191  0.414838  1.000000  0.216225 -0.011069 -0.081228   \n",
       "Fare   -0.549500  0.091566  0.159651  0.216225  1.000000  0.269335 -0.117216   \n",
       "C      -0.243292  0.032024 -0.059528 -0.011069  0.269335  1.000000 -0.148258   \n",
       "Q       0.221009 -0.013855 -0.026354 -0.081228 -0.117216 -0.148258  1.000000   \n",
       "S       0.074053 -0.019336  0.068734  0.060814 -0.162184 -0.782742 -0.499421   \n",
       "female -0.131900 -0.084153  0.114631  0.245489  0.182333  0.082853  0.074115   \n",
       "male    0.131900  0.084153 -0.114631 -0.245489 -0.182333 -0.082853 -0.074115   \n",
       "\n",
       "               S    female      male  \n",
       "Pclass  0.074053 -0.131900  0.131900  \n",
       "Age    -0.019336 -0.084153  0.084153  \n",
       "SibSp   0.068734  0.114631 -0.114631  \n",
       "Parch   0.060814  0.245489 -0.245489  \n",
       "Fare   -0.162184  0.182333 -0.182333  \n",
       "C      -0.782742  0.082853 -0.082853  \n",
       "Q      -0.499421  0.074115 -0.074115  \n",
       "S       1.000000 -0.119224  0.119224  \n",
       "female -0.119224  1.000000 -1.000000  \n",
       "male    0.119224 -1.000000  1.000000  "
      ]
     },
     "execution_count": 190,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#看一下特征之间的相关程度\n",
    "train_data_hot_encoded.corr()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAI3CAYAAACS1vEeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd5gT1f7H8fdJtvdeqNKrVEFQQDqIiti7YrmIoiDtIiCIgoKKWO+lKLZrQcWuSJHe29J7r9uX7SWb5Pz+mLB9YWHDLsvv+3qePOycOTP5ZJiZnJw5kyitNUIIIYQQ1yJTZQcQQgghhLhSpKEjhBBCiGuWNHSEEEIIcc2Sho4QQgghrlnS0BFCCCHENUsaOkIIIYS4ZklDRwghhBBOo5T6TCkVp5TaXcp8pZT6UCl1WCm1UynVpsC8J5RShxyPJ5yRRxo6QgghhHCmL4C+F5h/K9DA8RgEzARQSgUBrwI3Au2BV5VSgeUNIw0dIYQQQjiN1noVkHSBKncCX2nDBiBAKRUJ9AGWaK2TtNbngCVcuMFUJi7lXYEQQgghKlduwtEK+5kDt9B6z2L0xJw3R2s95xJWUR04VWD6tKOstPJykYaOEEIIIcrM0ai5lIZNpZJLV0IIIYSoSGeAmgWmazjKSisvF2noCCGEEFWd3VZxj/L7HXjccfdVByBFax0NLAJ6K6UCHYOQezvKykUuXQkhhBDCaZRS3wFdgRCl1GmMO6lcAbTWs4AFQD/gMJAJPOmYl6SUmgxsdqzqda31hQY1ly2P1hU2fkkIIYQQV0Bu7IEKezN3DW+kKuq5nEEuXQkhhBDimiWXroQQQoiqzm6v7ARXLenREUIIIcQ1Sxo6VYBSapJSShd4nFVK/aSUqlfZ2SqSUspdKTVKKbVNKZWhlMpUSm1WSo1USnleBfm0UuqFS1ymt1LqpRLKv1BKbXFauIvnWKGUmu+kdf1bKdXVGeuqbI7tokt4vOLk57lfKTXQmesU/79oba+wR1Ujl66qjhTyvwq7LjAZWKqUaqa1zqi8WBXD0ZBZDFwPvA+scczqCIwBrMAHlRKufHoD92K8poImA5XeeLtM/wY+BlZUcg5nWQ6MK1J2qqSK5XA/EILxG0FCCCeShk7VYXX8JgjABqXUSWA1xi16P16pJ1VKmQGz1tpypZ6jjKYAbYAbtdYFfxH3H6XUf4DG5Vm5UspTa51V1vIrTWt9pKKfU5QqqcCxVyVU1n4rKpGM0SmVXLqqurY6/r0OQCnloZR6Wyl1SimVo5TaoZTqV3ABpdTjSqk1SqkkpdQ5pdRypdQNRep8oZTaopQaoJTaA2QDNyqlApRSnzoum2UrpU4qpT4psmx3pdRGx/xYpdR/lVI+BeZ3dXT7d1VK/aiUSldKHVVKPX+hF6qU8gKeBWYVaeQAxncvaK3XFajfSim11HFp65xS6hulVHiB+dc5cjyilPpKKZUM/FFauWOZIKXUHMfrylZKrVNK3XiR3LcppZYopeKUUqlKqQ1Kqd4F5k8CRgK1C1wS+aLg/0OR9ZX1dd2vlJqtlEpRSp1WSr2mlCrTsa6UGqSUOq6UylJK/aWUql5k/gX3M6XUcSAY41eHz7+mrkqpL5VSiwvUa+SY93OBsraOsgYFyu507I/ZSqkYx3O7FsnU3JE1zfH4USkVUWD+Ze13Zdxe5T7uHP/n9wC3FNhmk85vT6XU9CLrG+io41Pk9fVRSv2ulErH6FFDKVVLKTXP8dyZSqlFSqlGRdY3Vil1WOUftwsLbj8hqjrp0am6rnP8G+P4dz6On7UHjmB0hf+ulLpBa729wDJfOea7AQ8Bq5Vx+etokXW/DbzuWP8xYAZwEzDcUVYT6HJ+AaVUM2Ahxq/N3uOYPw3jMlvRX5/9BPgS47dSHgL+o5TaorXeVMprbQt4O9Z/QUqpUIxLJvuAhwEfR44ljm1RsGdqOvAzcB9gK61cKeUO/AMEAKOBOOA5jN6kBlrrGEpWB6OhNB2wA7cCfyulumit1wKfAg2A7sBdjmXinfC63gZ+wrgk1gOYCOwBfigl53kdgUbACMADeAv4FWhXoM7F9rO7MC71zHe8PoC9QH3gPaWUWWttw9h3soFOBdbdBYjVWh9yvOb7ge+A2RiXjuoBUzE+oI1y1KkPrAW2AI9inNMmYzRc2+vCXxR2qfvdeUopVehcqbW2lnF7wMWPu8lALYz963zj6/RFMpVkLvA5xmXQbKVUEMYl3kRgMMYXs72Msd821FpnKaUex9i2YzD2kWCM/dH7Mp5fVKYqOHamwmit5XGVP4BJQALGSdwFaIjxZpIKRGK8mWngliLLrQJ+LGWdJse69gMTC5R/4VhXqyL1dwMvXiDjPOAQxmWu82X3O9bV0THd1TH9eoE6rhhv7tMusO4HHcs1KsO2mgYkA34Fym50LP+QY/o6x/QvRZYtrfxpwAI0KFDmgvHG9U6BMg28cJHtvQj4rED5dOB4CfW/ALZc5uv6qsi6tgPzLrLdVgC5QK0CZTc71tfXMV2m/cyxr04qUqeRY9kbHNNfAbMcz9nYUfbz+fUACjgBfF5kPU8BWUCwY/p/wAHArUCdBhgN19vKs98V2C66hIdLWbdHGY+7+cCKEuofB6YXKRvoeF6fIq/vvSL1JmM0coIKlAVijPcb4pj+GPjpYseVPK7+R87J7bqiHpX9Wi/1IZeuqo5gjDeFXIwTe13gAW38PkhPjF6WtUopl/MPYClQsIu8iVLqF6VULMYbQS7GG1DDIs91Rud/Gj1vOzBaKfW8UqpofTA+1f6ijU/r5/2EMUi4U5G6eZcwtNa5GA2kGhd5/WCczC+mPbBYa51a4Dk2YrxhFM3xVynrKFreE+NS4bEC2xZgJQW2b1FKqRqOSzZnMLZDLsbg45K238VcyutaXGR6L2XbvlFa65MF1r8Wo/eqvaOoTPtZSbTWBxzr6uwo6gL8DUQVKOuEMe4MjG1UC/ihyHMtw+htal4g0y+AvUCdYxjbpWimy93vlmH0auU9tNGj4+zjrrxK2m+XAKkFsqVh7Mvn820H+inj8mZ7ZYzJE+KaIpeuqo4UjBOXxji5ntVan3/jDwEiME6gRdkAlFK+GCf6WIxLEycwLh18ivHGUVBsCet5AeNS1kSMLv/DwASt9TzH/Miiy2mtbUqpRCCoyLqSi0xbSshQ0Plfr60FHLxAvfM59pRQHltCjpJeZ0nlIUAHSt6+JQ4aVsaYmN8BX4xtdhjIwNiGYaU874VcyutKLjJ9se17XlwpZZGOvy+6n13EaqCzMm5jr4VxWeV82RoglPyGTojj3wWlrKtmgXpjHI/S6pyXXGS6rNvlnNa6pFv9nX3clVdp++0DJdRd6vj3M4x9dBDGfpqolJoFvFrkQ4u42jnnxzavSdLQqTqspZxsAZIwGgMDLrB8R4xPr7201vvPFyql/EuoW6znRGudDAwFhiqlWmDcQvyNUmqn1novEE2RN3DHp8NgR77y2ILRSOiDMVbmQorlcAgnfwD3eaX1EBUtT3JkeK6EujmlrKM+0Bq4VWudN7ZIXf73/VzK67pcJa0/zPHcULb97EJWA+MxenP2aq0TlVKrMcaUrMW4FLujwHOB8Qa8rYR1HStQ7xfyxwMVlHCZOcvK2cddSbIxxvUUFFhK3ZL2298xLmEVlQagjS9FeQ9j/FRN4BHgDYwxQrPKmFGIq5o0dK4NSzHu3kkveDIt4vwbbN4bs1LqJoxxHZf0Rqm13qmUGo1xUmyMcWlkI3CXUmpcgU+Cd2PsY2tKXlOZny9LKTUbeE4p9bmjYZVHKRUANNFar3fkeE4p5au1TnPMb4fxOi83x1KMS04ntdYl9XqUpKTtXRtj3MvOAvXK2qtwJV5XUW2UUrXOX75SSt2M0dA5P1i3LPsZlP6aVmE0agY5/gaj8VMbY4D1Op3/bWQHMBoR12mtP6F0S4FmwNYCPZwVxZnHXWnb7DTQpEhZ7xLqlZbvfmCPLsOt5lrrU8A0pdSTQNMyPoe4Wshg5FJJQ+fasARjkOsSpdRbGJc4/IBWgIfWeiywAUgHPlFKvY3xKXMS+ZeFLshxaeEXjEHJGvgXRi/L+TfBKRifvH9VSs10rP8tYJGjAVJer2CMFVmrlHoPowcAjAG5L2IM1l2PcXfYc8Aix7Y4f3fSLowxQ5fjK4y7VlY4bvU9itFT1R6I0Vq/V8Iy+zHepN5VSk3AuDzwGsW3934gXBnfirsbSNBaHy9hfVfidRUVD/yllHqV/Luuogr0SJVlPzv/mm5TSi3E2OcOOBpnOzB6bboAM8H4agCl1F5H2fjzQbTWdqXUSOB/Sik/jPE8FoyxaQOAe7XWmRj78CZH7s8wenGqA72AL7TWK5y0bUrizONuP3CnUmoAxn5zVmt9FuOY+0gpNQ7YjHFHY7My5puBcSfaMqXUR47nDAduAdZorb9zfIBIcuRMAbphDOYu6VKgEFWSDEa+Bjg+yd6Ncb39JYyT72yMbvM1jjqxGLdLRwC/OeoNxhg7UhbrMe72mI9xm3IIxmWZ047178G4fToM4+6ZKRi3Bt9bvldncHwi7YnRrX43xm3bf2Dczvw2xutFax2PcbLOdjz/fzB6DXrpy/zSQ611tmOdSzAaK4sxvoW5AfkNvaLL5DhyWjG22WSMW6NXFqn6A8YdVm9jvJFNKmV9Tn9dJVjnWO/7GLcq76bAZZmy7GcOozEawX85XlNbx/J2x3NAfo8O5I/LKdQzpbX+HrgTo+HwI8Z+9TzGAGaLo85BjHEomRi3jf+N8X+UQ9n37cvi5OPuvxj71WcY22yQo3wOxv/HUIx9JQfj2CpLvgSMbbMf4/LUYoz9zJ/8XsX1GI3MzzHGQ90F/Etr/WtZnkNcRez2intUMarie3uFEEII4UyWo5sq7M3crW57VVHP5Qxy6UoIIYSo4qrij21WFLl0JYQQQohrlvToCCGEEFVdFRw7U1GkR0cIIYQQ1yzp0RFCCCGqOhmjUyrp0RFCCCHENUt6dIQQQoiqTn7rqlTSoyOEEEKIa5b06AghhBBVnYzRKZX06AghhBDimiUNHSGEEEJcs+TSlRBCCFHVyRcGlkp6dIQQQghxzZIeHSGEEKKqk8HIpZIeHSGEEEJcs6RHRwghhKjqZIxOqaRHRwghhBDXLOnREUIIIao4reUnIEojPTpCCCGEuGZJj44QQghR1cldV6WSHh0hhBBCXLOkR0cIIYSo6uSuq1JJj44QQgghrlnSoyOEEEJUdTJGp1TSoyOEEEKIa5b06AghhBBVnV2+R6c00qMjhBBCiGvWFe/RUUppS/yRK/00TuMWWo8ptR6u7BiX5JWT37K/Ud/KjnFJGh9YSFTN/pUdo8zanPqd+2vdWdkxLskPJ39jZo1HKjvGJXnu9DfE9exS2THKLOyfVexrcGtlx7gkTQ79za/hD1V2jDIbEPsdx1r2rOwYl6TOjn/QWqvKziEMculKCCGEqOpkMHKp5NKVEEIIIa5Z0qMjhBBCVHXyhYGlkh4dIYQQQlyzpEdHCCGEqOpkjE6ppEdHCCGEENcs6dERQgghqjoZo1Mq6dERQgghxDVLenSEEEKIqk56dEolPTpCCCGEuGZJj44QQghRxWktP+pZGunREUIIIcQ1S3p0hBBCiKpOxuiUSnp0hBBCCHHNkh4dIYQQoqqTb0YulfToCCGEEMJplFJ9lVIHlFKHlVIvlzD/PaXUdsfjoFIqucA8W4F5vzsjj/ToCCGEEMIplFJm4D9AL+A0sFkp9bvWeu/5Olrr4QXqvwi0LrCKLK11K2dmuioaOq+8OYNVazcRFBjAr1/PKjZfa83U92exev1mPDzceWP8SJo2qg/AbwuWMPvLeQA8+8SD3NmvFwB79h/ilTdmkJ2TQ+eO7Rj70mCUUk7P3nvS49Tr1pLcLAt/jppNzO7jxeo8+OW/8QkLwORi5tSmAyyc8Dnarrll5L006NUW7JqMxFT+GDmL9LhkgutFcvv0Z4lodh0rpv/AxjkLnJLVq1NbwscPBpOJlPkLSfrkx0LzlasrEW+NxKNZA2zJqZwdMRXrmThwMRMx5SU8mtYDs5nU35aSNOcHlJsrNb9+B+XmijKbSVu8hsSPvnZK1vN8b2lNjUn/QplNJM5bQux/fyqc2c2F2u8Nx+v6eljPpXF8yDtYTsdhDvClzqwxeLWsT9KPyzg9cU7eMoH9OxP+wr2gITc2iePDZmA7l+bU3AMnPUPrbm3Jycph5qgPObb7aLE6E+dNITAsEEu2BYA3HptEamJK3vz2t3Zk5KwxjL19JEd3HcHs6sKgN5+jbov6aLudL16by94Nu52S9+bXHqNW91ZYs3JYPmIOCUX2YxcPN3rNGopf7TC0zc6Jf7axcdr3herUubUdfeYM46fbJhC/8xhhrerSZdrTxkwFW977heMLtzglr+sN7fF5/kWUyUTW33+R9f23heZ73nM/HrfeBjYb9pRk0qa/hT0uFnO9+vgOHYHy8gK7ncxv/0fOyuUAeNx5F1533Yu5eg0S7umPTk0p6akvi3fntoSNfxZlNpH84yKS5hQ99lyIfGcUHs3qY0tO4+xLU8k9E4ffHV0JeuaevHrujepw/K6h5OzL35+qz5yIW80Ijt3+vNPynnf9lMcJ69EKW5aFbcNmkbLreLE6TV6+n5r3dcY1wJu/6j2VV37d4z2o82QvtM2ONSOHHaM/Je3gGUK7NKfp+IcwuZmxW2zsef0bEtbuLbbey+F50w0E/ft5MJlI/+VvUj4vvI+6t7meoNHP4dagLvEvv0HmP6sBMEeGETZjEspkAhczad/9Rtr8P1Ee7oS+MwHXGpFou52slRs49+Fcp2R1uqtnMHJ74LDW+iiAUmoecCdQ2n/yQ8CrVzLQVdHQGdCvFw/f059xk6eXOH/1+s2cPH2WBd/PZeee/Uye/jHfffI+KalpzPz8W76f+yEADzw9lK6dOuDv58vk6R8zacxQWjRrzHOjJrJmwxY6d2zn1Nz1urUkqE4EM28ZSbXW9ek75Um+GFD8/+vnIR9hSc8C4J5Zw2hy243s/WMD62f/xcp35wNww8A+dB52N3+P/4ys5AwWv/oVjfq0dV5Yk4nwiUM4/dQ4cmMTqP3jB6Qv24jlyMm8Kv739saems6xPk/j2+8WQkc+RfSIafj27YxydeV4/+dRHu7U+Ws2qX+twHomjlMDX0ZnZoOLmVrfTCdj1Rayd+x3WuaaU57l8COvkhudSKM/ppOyZBPZh07lVQl+oBe2lHT2dhlMwB2dqTb2CY4PeQedYyH63W/waFQbz4a18tdpNlF90jPs6/ECtnNpVBv3BKEDbyPmvXnOyQy06taWiDqRDLvlORq0bsjTUwbzyoB/l1j3o2EzOLrrSLFyD28P+j15O4eiDuSV9XjIaMSP7jMMv2B/xn45kXF3jEJrXa68tbq1xL9OBN91HklY63p0fnMgv/SfVKzejtl/cXb9PkyuZu6YN46aXVtwasVOAFy9Pbj+6T7ERh3Oq5+0/zQ/3TYBbbPjFRbAfYve4MSSKLStnCdkkwnfF18iecxI7AnxBH48G8v6tdhOnsirYj18iHNDBkFODh6334n3vwaT9sZrkJ1N2ttvYDtzBlNwMAH/+QTLls3ojHSsu3eTvGE9AdPfL1++EvKGv/o8p54cT25MAtf99D7pSzdgOZK/H/vf1wdbSjpHez2D721dCB39FGdfmkbqHytI/WMFAO4Nr6P6fycUauT49L4Je2a2c/M6hPVohXfdCJZ2HEFgm/q0fOspVvWbWKxezOIojn62mJ7rZxQqP/3zOo5/tRSAiN5taDbpUTY8/BaWpDQ2Pv4O2bHJ+DauQcfvXmZx6xfKH9hkImjsi8QOHoM1NoFq33xM5sr15B7NP8fZYuJImPgO/o/fV2hRW3wS0Y8Pg9xclKcH1X/6hMyV67GnpZP65Y9kb9kBLi5EzHkbz5vbkbV2c/nzVmFKqUHAoAJFc7TW5z9NVgdOFZh3GrixlPXUBuoAywoUeyiltgBWYJrW+tfy5r0qxujc0Op6/P18S52/fM0G+vftgVKKls2bkJaWTnxCEms3bqVju9b4+/ni7+dLx3atWbtxK/EJSWRkZNKyeROUUvTv24Nlq9c7PXfDXm3Z+ZPxieDstsN4+HnhExZQrN75Ro7JxYzZ1YXz70vnywHcvNzz3rAyE1OJ3nkUW67zvgDKo0VDck+eJfd0DORaSVuwEp8eHQrV8enRkZRf/wEgbdFqvDq2MmZojcnLA8wmlIcbOjcXe3qmMctxklUuLigXFyjnm25BXq0akHM8BsvJWHSulXN/rMa/d/tCdfx730jifOMYSV6wFt+bWwBgz8ohY/M+tKO3JI9SoJTxegCzjxe5sUlOywzQrld7Vv20AoBD2w7i7edNQFjgJa3jgZGP8Nusn7Hk5OaV1WhQk93rdgGQmphCRmoGdVvUL3fe63q35eBPawCI23YEdz9vvIrsx9ZsC2fX7wPAnmsjYddxfCKD8ua3G3Uv2//7J7YCea3ZlrxGjdnd1Wm7hkujJtjOnsEeEw1WK9krluF2U6dCdXJ3bIOcHCPHvr2YQ0MBsJ05je3MGeN1JCaik89hCvA36h05hD02xjkhC/Bo0RDLibPknjKOvdS/VuHTs2OhOj49OpDyi+PYW7gGr44ti63H9/ZbSP1rZd608vIg6Mm7SPzvd07PDBDZpy2nfjDOb+eiDuPq54V7Cee3c1GHyYlLLlZuLXB+M3u5A8YOkLL7BNmxRv20/acxe7hhciv/Z2735o2wnjqL9UwMWK1kLFqBV9ebCmc6G0vuoWPFz1NWK+Qa+65ycwVlvDXq7ByjkeOoY9l/GHN4SLmzXhHaXmEPrfUcrfUNBR5zLh6wRA8C83XhbzusrbW+AXgYeF8pVa+8m6ZMDR2lVD2llLvj765KqaFKqYDyPnlZxcYnEhGWv3OFh4UQG59AbHwCEWGh+eWh+eXhBeuHhhAbn+j0XL4RQaSezV9vakwSvuElv6E9+NUYXoqaSU5GNvsXbMwr7zr6Pl5c/yHNBtzEqhnznZ7xPJfwEHKj4/OmrTEJuIQHF64TFow1OsGYsNmxp2ViDvAjbdEa7JnZ1Fv9LfWWfUXSZz9jT0k36plM1P7lY+qv/Y6MddvI3nkAZ3GLCMZyNiFv2hKdiGuRzK4RQeSezc9sS8vAHFh6oxmrjdPjZ9Fk8Yc03/I5Hg1qkjjvH6dlBgiMCCKxQO7EmESCwoNKrPvc9KG8teA97h56f15ZneZ1Ca4WwrZlWwvVPbH3ODf0aofJbCK0Zhh1m9cjuFr5T7reEYGkF9iP06OT8I4ovWHm5udF7Z6tOb12DwAhza/Dp1oQJ5dtL1Y3rFU97v9nGvcvmcqqcZ+XvzcHMIWEYIuPy5u2J8RjDil9O3jc2g/Lpo3Fyl0aNQZXV2xnz5Y704W4hgdjjcnfH6wxCcX34/BgrOePz/PHXqBfoTp+/bqQ+md+Qyd02GMkffYzOjvniuT2iAwk62z+h4Cs6CQ8Iy+twV7nyV703PAezSY8zK7xXxWbH3l7e1J2HcdusZY7rzksBGtMgXNcbALmsLIfH+bwUKr9MJsaC78l5YvvsRV5zzD5euPZpQPZG7eVO+s17gxQs8B0DUdZSR4ECrXUtdZnHP8eBVZQePzOZSlrj85PgE0pVR+Yg/Eivi2tslJqkFJqi6P7SQDzHn+LD9oNwcXNhetuapZXvuKdH/mo41D2/LqOG57oXYkJS+d5fSOw2znS5RGO9hxI0JN341ojwphpt3Pirhc40vUxPFs0xK1B7coNezEuZkIe68v+fsPZfcOTZO07TviQey6+3BXw0bAZjO4zjFfvG0vjdk3pcndXlFI89spT/G/K58XqL//hHxKjE5n6x7s8MfFpDkbtx+6EhsOlUGYTPT8ewq7PF5F2Mh6U4qaJj7B+csmng7jtR/ih58v8dPtE2gy5A7O7a4Xmde/RC5eGjcj8sfClSVNQEL5jxpM2fZpTeyGvFI8WjbBn5WA5ZFyec29SF9dakaQvcX5PtTMd+3wJ/3QYzp4p39Fw+IBC83wbVafZKw+xffSnlROuCFtsPGfvf5Yz/Qfic0cvTEEB+TPNJkKmjiPtu1+MHqOrkd1ecY8L2ww0UErVUUq5YTRmit09pZRqDAQC6wuUBRboVAkBbqb0sT1lVtb+QrvW2qqUugv4SGv9kVKq1GatoxtrjiNsuc8i4aHBxMTlfyKKjUsgPDSE8NAQNm/bmV8en0C71i2MHpyC9eMTCA8t/AnqcrV9vBetH+wGwNmdR/Grlr9ev4gg0mLPlbqsLSeXg4u30rB3W46tKTyIdPeva3ngi9Gseu+nUpYuH2tsAq6R+b1fLhEhWGMLf2KxxiXiEhmCNTYBzCZMvl7YklPxvb0rGau3gNWGLSmFrKi9eDRvYFwGc7CnZZC5cSfenW/IOxmXlyUmEbcCPRZukcHkFsmcG5OEa7UQcmMSwWzC7Ot9wYHFXk3rGOs+YWQ/9+cawp8vf0On9+O30uNBo6F6ZOehQj0twRHBJJVweeycoyw7I5u1v62iXqsGbF6yiZqNajFx3hQAAkIDGD13PO88/QZHdx3hq8mf5S3/+s/TiD5W2gelC2v2RE+aPGTsx/E7juJTYD/2iQwiI6bk/fiWt54m5VgMu+YuAsDNx4PARjXo/8N4ADxD/en72QgWPjWD+J3H8pZLPnyW3IxsghrVKFR+OewJCZhDw/KmTSGh2BISitVzbd0Wr4cfI3nk0LzLEgDKywu/KW+R8fmnWPc5ZxDsheTGJuISkb8/uESEFN+PYxNxiQw1jsnzx9651Lz5frd1Ie2vFXnTnq0a49G8AfWWfQ4uZlyC/Kn1v2mcfKzYnbyXpM6Tvaj9iLFfnNt+FM9q+T2RnpFBZEWXfn67kDO/rqflW09x/k3DIzKI9p+NIOrFmWSeiLvgsmVli0vAJaLAOS48BFtc8f3iouuJT8Ry+Dgeba7PG6wcPGE41pNnSP3mF6dkvZY52govAIsAM/CZ1nqPUup1YIvW+nyj50Fgni48yLAJMFspZcfoiJlW8G6ty1XWHp1cpdRDwBPAn46yCvto1rVTB35fuBStNTt278PHx5vQkCBuvrEt6zZFkZKaRkpqGus2RXHzjW0JDQnC29uLHbv3obXm94VL6dapw8WfqAy2frWET/uN49N+4zi4eAst7ukMQLXW9clJyyK9yLVqVy/3vHE7ymyifvfWJB4xusoDrwvPq9ewd1sSj0Q7JWNJsncdxLV2NVyrh4OrC779biF92YZCddKXbcB/QE8AfPt0JnODcW3aGh2PVwdjzIDydMejZWMsR09hDvTH5OttlLu74XVTayxHT+EsmTsO4V4nEreaYShXFwLv6EzKkk2F6qQs2UTwvd0BCOh3M2nrdpa0qjyW2CQ8GtTEJci4LODXuRU5h0+XO+vir/5mTL/hjOk3nM2LN9Llnq4ANGjdkMy0DJLjCr9BmMwmfB2X2MwuZtr0uIFTB06SlZbJv1o/zoudBvFip0Ec2nYwr5Hj5uGGu6c7ANd3aondauPMocvLvufLf5jfdzzz+47n2KKtNLzHGOMS1roelrRMMksYc9Fu9L24+XqydlL+nXWWtCy+bPkc39w0nG9uGk7ctiN5jRzfmqEos3GK8akeTED9aqSdii+23ktlPbAfc/UamCIiwMUFj67dsaxfW6iOS70G+L40ktSJY9HJBV6Liwt+k6aQs2QRltUrqQjZuw7idl01XGsYx57fbV1IX1r02NuI/12OY69vJzLXF9iPlcK3X2dS/1qVV5T83QKOdH6MI92f5ORDo7AcP1PuRg4YPTAreo5jRc9xxCzcQs37jfNbYJv65KZllTgWpzTedSLy/g7v2ZqMY8aHCxc/Lzp8PZq9b8wjafPBcmc+L2fPAVxqVcelmrFfePfpSubKsvV4mcNCUO5uAJh8ffBo3Zzc48a5LGDIQEw+3iS9M9NpWa+IChyjc9EoWi/QWjfUWtfTWr/hKJtYoJGD1nqS1vrlIsut01pfr7Vu6fjXKbe4lbVH50lgMPCG1vqYUqoO8D9nBAAY/eo0Nm/bSXJyKj0GPMrzTz+G1Wpcs33grtvo0rEdq9dv5tb7n8LTw4PJ44xb8P39fHl24EM8+MwwAAY/+XDeoOZXRg7Jv728Qzun33EFcHjZdup1a8Xzq2bk3V5+3jML3uTTfuNw83Lnvk9HYHZzRZkUJ9bvZevXxp0I3V9+kKC6kWi7JvVMAn+PMz6te4f689QfU3D38UTb7bR/6lZm9/x3ocHLl8xmJ27yTGrMnQImMyk/LcZy+CTBLz5G9u6DZCzfSMr8RUS+PZo6i+ZiS0kjesQ0AM59+weRb47guj9mgVKk/LyYnIPHcW94HRHTRhlvZkqRtnA1GSs2XSTIpWU+PWEO9f43ybi9/PulZB88RcSIh8ncdZjUJZtI/H4Jtd8fTtNVs7Amp3H8hfw795qunYPZ1wvl6oJ/nxs58ugksg+dIvr972nw45toqw3LmThOjPjQeZmBbcu20rpbWz5YNQuL4/by895a8B5j+g3H1c2Vcf+bhNnFjMlsYteaHSz9bskF1+sfEsC4r15FaztJMUl8PPx9p+Q9uWw7tbq35KE172LNsrBiZP64wnsXvsH8vuPxjgii7dABnDt0hnv/Nnqbdn+xhP3zVpS63oh2DWn9/B3YrTa0XbN6/Bdkn0svf2C7jfSP38d/6nSUyUT2ogXYThzH64mnsB7cj2X9OrwHDUZ5euI34TUAbHFxpE4ch/st3XC9viUmPz88+vQFIPWdadiOHMZzwD143v8gpqAgAud8hmXTBtJnvFP+vDY7sa/PpObcKWA2kTLfOPZChj5K9u5DpC/bSMqPi4h8ZxR1l3yKLSWNs8Pfylvcq11zrNEJxmDmChT7z3bCe7Si54b3sGXlsO2l/PNb13/eZEXPcQA0nfAQNe66CbOnG72jPuLEtys4MP0n6jzVm9AuzdG5ViwpGUQNNRoKdZ/qjXedcBqNuItGI+4CYN2D07AkpBYPcSlsdpKmfUz4zKnG7eW/LSL3yAkCnnuCnL0HyVq5HrdmDQmbMQmTnw+eXToQ8NzjnL3nX7jWrUXQiGeNy5hKkfLVj+QePo45LISAfz2C5ehJqs0z8qfO+430X/4uX1ZRodSl3pqqlAoEamqtL/zROb++tsQXv332auUWWo8ptR6u7BiX5JWT37K/Ud/KjnFJGh9YSFTN/pUdo8zanPqd+2vdWdkxLskPJ39jZo1HKjvGJXnu9DfE9exS2THKLOyfVexrcGtlx7gkTQ79za/hD1V2jDIbEPsdx1r2rOwYl6TOjn/QWjv/i9suIOvvDytssJnnrUMr9LWVV1nvulqhlPJTSgUBUcAnSqkZF1tOCCGEEKIylfXSlb/WOlUp9Qzwldb6VaVUmXp0hBBCCHGFXT3fjHzVKetgZBelVCRwP/mDkYUQQgghrmpl7dF5HeNWsTVa681KqbrAoSsXSwghhBBlVoa7of6/KlNDR2v9I/BjgemjQOV8y5oQQgghRBmVqaGjlPIAngaaAR7ny7XWT5W6kBBCCCEqhozRKVVZx+j8D4gA+gArMX67ovSvnxVCCCGEuAqUtaFTX2s9AcjQWn8J3EYpP7suhBBCCHG1KOtg5PM/FJOslGoOxABhF6gvhBBCiIoig5FLVdaGzhzHNyJPwPgVUh9g4hVLJYQQQgjhBGW96+pTx58rgbpXLo4QQgghLpkMRi7VBRs6SqkRF5qvtZafgRBCCCHEVetiPTq+FZJCCCGEEJdPxuiU6oINHa31axUVRAghhBDC2cr66+VfKqUCCkwHKqU+u2KphBBCCFF2dnvFPaqYsn6PTgutdfL5Ca31OaD1FUkkhBBCCOEkZb293KSUCnQ0cFBKBV3CskIIIYS4kqpgT0tFUVrri1dS6nFgPPCDo+g+4A2t9f/KsOzFn0AIIYS4hmitVUU+X9YPr1fYe63n/RMr9LWVV1m/R+crpdQWoLuj6G6t9d6yPsmUWg9fTrZK8crJb7HEH6nsGJfELbQec6o/UtkxLsmgM9/wbWTV2S8ejv6WA437VHaMS9Jo/yJ21L69smNckpYn/mRD5F2VHaPMOkT/wvoqlBegY/QvLA67v7JjlFnvuB/Y36hvZce4JI0PLKz4Jy1Dp8X/Vxf7Hh0PYDBQH9gFzNJaWysimBBCCCFEeV2sR+dLjN+5Wg3cCjQBXrrCmYQQQghxKWSMTqku1tBpqrW+HkApNRfYdOUjCSGEEEI4x8UaOud/tRyttVWpKjX+SAghhPj/QXp0SnWxhk5LpVSq428FeDqmFaC11n5XNJ0QQgghRDlc7CcgzBUVRAghhBCXSX7rqlRl/WZkIYQQQogqRxo6QgghhLhmyc84CCGEEFWdDEYulfToCCGEEOKaJT06QgghRFUnPwFRKunREUIIIcQ1S3p0hBBCiKpOxuiUSnp0hBBCCHHNkh4dIYQQoqqTHp1SSY+OEEIIIa5Z0qMjhBBCVHXyExCluqoaOr0nPU69bi3JzbLw56jZxOw+XqzOg1/+G5+wAEwuZk5tOsDCCZ+j7ZpbRt5Lg15twa7JSEzlj5GzSI9LJrheJLdPf5aIZtexYvoPbJyzwClZX3lzBqvWbiIoMIBfv55VbL7Wmqnvz2L1+s14eLjzxviRNG1UH4DfFixh9pfzAHj2iQe5s18vAPbsP8Qrb8wgOyeHzh3bMfalwTj7F+M7vv4YNbu3wpqVw8rhc0gsso3NHm70nD0Uv9phaJudE/9sY/PU7wFo8mh3mg7shbbZyc3IZvWYuSQfOktoq7p0futpYwUKomb8wvGFW5yWuc3kx6nWvSW2LAsbhs/m3K7jxeq0GHMf193XGTd/b+Y3eDqvvPWkRwm/uWnea/MI8eOnJoMAaDn+Qar1aAXAnvd/5eTvG8qd1atTW8LGPQcmEynzF3Lu0x8KzVeurkS8NQr3pg2wJacSPWIq1rOx4OpC+KSheDRvAHZN3JuzyNq8E+XhTuT743GrGYm228lYvoGEGZ+XO2dBPre0ofrEf4HZRNL3S4ifOb9wZjcXas4YgWfzetiS0zjxwtvkno7Ds2UDakx9wVFJEfv+t6Qu2oBrZAg1ZwzHJSQANCR+t5DEz/9wamaA2pOfJqB7G+xZORwZ/jGZu44Wq+N1fV3qvf8iJg83kpdFcWLCXACCbu9I9ZEP4NmgBnv6jSFj55FCy7lVD6HFig84/e4PxMz6zWl5A7u3wXaBvN4F8p4rkreGI+/uAnmVqwt13h6MT4t6aLvmxMS5pK7f45S8AI3eGEhIj9bYsnLYM3QmabuOFavj26IOzT58HrOHGwlLt3Fg/BcA+DSrTZN3/oXZ3RVttbHv5bmkbsvfzn6t6tHur8nsevYD4v7c6JS8Xp3aEj5+cN7xl/TJj4XmG8ffSDyaGcff2RFTsZ6JAxczEVNewqNpPTCbSf1tKUlzChy7JhO153+INS6BM4MnOSWrqDhXzaWret1aElQngpm3jGTB2Ln0nfJkifV+HvIRn946jjm9xuAV7EuT224EYP3sv/i071g+7TeOQ0u30XnY3QBkJWew+NWv2PjJX07NO6BfL2bNmFLq/NXrN3Py9FkWfD+XSf8eyuTpHwOQkprGzM+/5btP3ue7T95n5uffkpKaBsDk6R8zacxQFnw/l5Onz7Jmg/MaCwA1u7fEv04EP3QayZoxc+k0dWCJ9XbO/osfu/6bn/uOJ+KGhtTo1gKAw7+u56eeY/m5z3h2zPyLDq8+CkDS/tP80m8CP/cZz9+PvkOnaU+izM7ZtSK7t8S3TgR/3jySTf+eyw1TS94vzizZxuJ+E4uVb5v0NQt7jWNhr3Ec/Hwxp//eDEC1Hq0Iuv46FvYax+LbXqXx4H64+HiWL6zJRNiEIZwZ9ArH7xiE321dcatXq1AVv3v7YEtJ53jfp0j+6hdCRz0FgP99twJw4s7nOP30WELH/Ascjdxzn83n+G3/4sTdQ/Bo3QyvzjeUL2eRzNVfH8yxgZM42GsIAf274F6/ZqEqQff3xpaSzoGuzxI/9zciXx4IQPaBkxy6YziH+g3j2OOvUuONIWA2oa02oqd8xsFeQzh81yhCHrut2DrLy797GzzqRLLj5iEc+/cs6kwdVGK9OtOe5djomey4eQgedSLx79YagMz9Jzn0zNukbdhb4nK1X32S5GXbnJY3oHsbPOtEst2Rt+4F8h4dPZPtNw/Bs04kAQXyHiwhb9gjPQHY2WM4+x58jVqvDszbb8orpEcrvOpEsLbDMPaN+oQmbz9dYr0mbz/DvpFzWNthGF51Igju3gqAhhMf4ej0+WzoMYYjb/9AgwmP5C9kUjSY8DBJK3Y6JauxThPhE4dw+l8TOHb7s/iWcPz539sbe2o6x/o8zbkvfyV0pHH8+fbtjHJ15Xj/5zlxz1ACHuiHS/WwvOUCH78Ty9GTzst6BWi7rrBHVXPVNHQa9mrLzp9WA3B222E8/LzwCQsoVs+SngWAycWM2dUl7zuSzpcDuHm5ox0zMhNTid55FFuuzal5b2h1Pf5+vqXOX75mA/379kApRcvmTUhLSyc+IYm1G7fSsV1r/P188ffzpWO71qzduJX4hCQyMjJp2bwJSin69+3BstXrnZq5du+2HJq/BoC4qCO4+XnjWWQb27ItRK/bB4A910bC7uN4RwYBkFtgG7t6ued9QZUt24K2Gd2mLu6uTv3eqhp92nJ8vrFfJEYdxs3fC48S9ovEqMNkxyVfcF21B3TkxK/GNvVrWJ24DfvRNju2rByS950i0tGgu1weLRqRezKa3NMxkGsldcFKvLt3LFTHp3tHUn/7B4C0Ravx6tAKAPd6tcjcuAMAW1IK9tR0PJo3QGfnkLXJ8WaQayVn72FcI0LKlbMgr1YNsJyIxnIqFp1rJfmPVfj1vrFQHb/eN3Lup6UApCxYi89NLQHQ2Tng+H9X7m55x5w1/hxZe4xP7vaMLLKPnMI1IthpmQEC+7QnYf4KANKjDmL298Y1LLBQHdewQMy+nqRHHQQgYf4KAvsary378Bmyj5wted1925N9Kpasg6ecmjf+EvPGlyGvZ8OapK7ZBYA1MQVbSgbeLes5JXNo33ZE/7gKgJSth3Dx88atyLHnFhaAi48nKVsPARD94yrCbm0HGKcHF1/jw4OLnxc5sefylqv1zK3E/rkRS0KKU7ICeLRoSO7Js3nHX9qClfj06FCojk+PjqT8WuD469iK82FNXh5gNqE83NC5udjTM43s4SF439KelB8XOS2rqFgXbegopcKVUnOVUn87ppsqpUpu2peDb0QQqWcT86ZTY5LwDQ8sse6DX43hpaiZ5GRks39Bfpdn19H38eL6D2k24CZWzZhf4rIVJTY+kYiw/Dek8LAQYuMTiI1PICIsNL88NL88vGD90BBi4xNxJu+IQNILbOOM6CS8I0rexgBufl7U6tmas2vyu8KbPtGTB9a8S/vxD7Ju4ld55aGt63Hv0mnc889U1o79PK/hU16eEUFkFMiceTYJrwtkLo1X9RB8aoYS63gtyXtPEtmtJWZPN9yCfAi/qSne1cr3ZuwSFow1Jj5v2hqbgGt44XW6hAdjjXbUsdmxpWVgCvAjZ/9RfLp1ALMJl+rhuDdrgEtEaKFlTb7eeHe7kcz128uVsyDX8GByzybkTedGJxbLXKiOI7M50A8Az1YNabj4PzRc9BFnXvlvXsMnb9kaYXg2rUfm9gNOywzgFhFEToHclrOJuEUEFatjiU68YJ2iTF4eRD5/F2fe/eGC9S4nr+UK5M3cc5zA3u3AbMK9ZhjeLerhXs05DWH3yECyz+TnyY5OxCOycB6PyCCyo5Py65xNwj3SOD4PTviSBhMfpXPUf2jw6mMcfuM7Y70RgYTd2o7TXyxxSs7zXMJDyI0ucPzFJOBS9PgLC8Yanb8v29MyMQf4kbZoDfbMbOqt/pZ6y74i6bOfsaekAxA27lnip89FX+1jYOz2intUMWXp0fkCWARUc0wfBF660AJKqUFKqS1KKedee3GY9/hbfNBuCC5uLlx3U7O88hXv/MhHHYey59d13PBE7yvx1P9vKLOJ7v8Zwp7PFpF2Mv/ksffLf/i+00g2vTmP1kMH5JXHbzvC/B4v8+ttE2n5wh2Y3V0rIXXpag/owKm/NuV1u8as3MXZpdvp9fskbv7vCyRsPeS0xtnlSPl5EdbYeGr9+BFhYweTvX0vuuAJxWwicvrLJH/9m/GJ9SqRtf0gB3sP4XD/EYQ9dx+qwP+7ycuD2jPHcvb1T7AX6A28mtUY9QAxn/yBPTO7sqOUSdy8pViiE7l+4TvUfv0p0rbsL7zfVKIaA3txcOKXrG4zhIMTv6Tpe4MBaDR5IIemfHtV/WSB5/WNwG7nSJdHONpzIEFP3o1rjQi8u7bHmphMzp7DlR1RlENZBiOHaK1/UEqNBdBaW5VSF7wOpLWeA8wBUEqVuje3fbwXrR/sBsDZnUfxK/CJ2i8iiLQCXZ1F2XJyObh4Kw17t+XYmt2F5u3+dS0PfDGaVe/9dNEXd6WEhwYTE5f/CS42LoHw0BDCQ0PYvC3/unRsfALtWrcwenAK1o9PIDy0/N39TZ/oSeOHjW0cv+MoPtWCiXXM844MIiOm5G3c+a2nSTkWw+65JXfXHvltA53efJKVRcqTD5/FmpFNYKMaJOwsPnCxLBoM7EW9R4zMiduP4l0tmPNbxqtaEJmlZL6Q2nd2ZMu4LwqV7f3wN/Z+aAw07fifIaQejb6svOdZ4xIL9cK4hIeQG1u4V84am4hLZCjW2AQwmzD7emNPTgUgftqcvHo1v51B7vEzedPhrw3DcuIsyV/9Wq6MReXGJuJaoAfANTK4WObzdXJjEvMy286lFqqTc+Q09swsPBrWJmvXYXAxU3vWWJJ/XUHqIudcgg0f2JfQR4yB+xnbD+NeLYR0xzy3asFYYpIK1bfEJOEWmX8MlVSnKO/WDQi6rSO1Xnkcs5832O3oHAuxn/99WXnDHHnTtx/GrcB2dlZebHZOTMofnN7s9zdLvSRXFjWe7E2NR3sAkLL9CB7V8/N4RAYX6r0ByI5OKtTL41EtiJxo4/iMvP+WvIHJsb9voOmMZwHwa1WX62cNBcA12I+Qnq3RNhvxf5fvc7E1NgHXyALHX0QI1qLHX1wiLpEhecefydcLW3Iqvrd3JWP1FrDasCWlkBW1F4/mDXBvWg+f7h3wuaUdys0Vk48XkW+PJvrf75Qr6xVxtfc4VaKy9OhkKKWCAQ2glOoAOOXC6tavlvBpv3F82m8cBxdvocU9nQGo1ro+OWlZpBcZc+Hq5Z43bkeZTdTv3ppEx0EdeF14Xr2GvduSeKR8b1rl1bVTB35fuBStNTt278PHx5vQkCBuvrEt6zZFkZKaRkpqGus2RXHzjW0JDQnC29uLHbv3obXm94VL6dapw8Wf6CL2fvkPP/cZz899xnN84VYa3NsJgLA29bCkZZJVwriWG0bfi5ufJ+tf/bpQuV+d/G1cq0crUo4ZPQu+NUPzBh/7VA/Gv1410k7Fc7kOfbEkbwDxmYVbuO5eY78IblOf3NSsi47FKcq3fiSu/t4kbDmUV6ZMCrdAHwACmtQkoElNYlbuuuzMANm7DuBauxou1cPB1QW/freQsbzwnVzpyzfgd6cxgNS3T2cyNxjjcpSHO8rTHQCvm4wTv+WIMfgxeNgTmHy9iZ9a/O6+8srccQi366rhWiMc5epCwB1dSF2yqVCd1CUbCbzHePPz73cz6euMhrprjXBw/L+7Vg/FvV4NLKfjAKj51lCyD58iYa5z7lgCiP1iIbt7jWR3r5GcW7iJkHu7AuDTpiG21Exy4wo3gHPjzmFLy8KnTUMAQu7tyrlFm4qutpB9d73C9hsHs/3GwcR8+idnPvr5sho55/Pu6jWSXY68oZeYN7QMeU2ebpgc+41/l5Zoq42sQ6cvKy/A6c8Xs6HHGDb0GEP835uJvK+Lse62DbCmZWIpcuxZ4pKxpmfh37YBAJH3dSF+oTHgPyfmHIE3GXc8BnVuTuZR43yxpt2LeY+4Pzawb8zccjdyALJ3HcS1djVcHcefb79bSF9W5PhbtgH/AcWPP2t0PF4djLFnytMdj5aNsRw9RcKMLzja9TGO9hjI2ZHTyNy44+ps5IgLKkuPzgjgd6CeUmotEArc6+wgh5dtp163Vjy/akbe7eXnPbPgTT7tNw43L3fu+3QEZjdXlElxYv1etn5tDJLs/vKDBNWNRNs1qWcS+HvcZwB4h/rz1B9TcPfxRNvttH/qVmb3/HehwcuXY/Sr09i8bSfJyan0GPAozz/9GFarFYAH7rqNLh3bsXr9Zm69/yk8PTyYPG44AP5+vjw78CEefGYYAIOffDhvUPMrI4fk317eoR2dO7YrV8aiTi3bTs3uLXlgzbtYsy2sHJHfg3D3ojf4uc94vCODaD1sAOcOneHuhcZdZXu+WMKB71bQbGBvqndqht1qIyclg5XDjf+j8PYN6fP8HditNrRds3b8F+ScSy8xw6U6u3Q7kT1acfu6GdiyLGwcnr9f9F3yJgt7jQOg1SsPUXvATbh4unHnlo848t1ydr/7M2D05pz8rXCvgnJ1oecvxl1auWlZrH9xZvkvXdnsxE/5LzU+fQNMJlJ/Xozl8AmCX3yM7N2HyFi+gdT5C4l4699ct/Az7ClpRI+cCoA5KIAan76BttuxxiUSM8Y4mbqEhxA8+CFyjpyk1k/GnXvJ3/5B6vyF5ctaIPPZibOo+9VrYDZx7od/yDl0kvDhj5C16xCp/2wi6Ycl1JwxgkYrZmNLTufki28D4N2uKWHP3Yu2WsGuOTNhFrZzqXjd0JTAe7qTte8YDRZ8AEDM21+RtmKrczIDyUu3EtCjDS3X/Rd7Vg5Hh3+cN6/5knfZ3WskAMfHzqHu+dvLl0eRsiwKgMC+N3LdlGdwCfaj0f/Gk7HnGAcenuy0fKXlbeXIe6RA3uuXvMsuR95jY+fk3w6/PIrkInldHXkz9xxj/8OTcQ32p/F3E8GuscQkcvjFD52WOeGfbYT0aM3NGz/AlmVh77CZefM6LH2LDT3GALB/zFyaffg8Jg9XEpZuJ2HpdgD2jZxNoykDUS5m7DkW9o6aU9LTOI/NTtzkmdSYOwVMZlJ+Wozl8EnH8XeQjOUbSZm/iMi3R1Nn0VxsKWlEj5gGwLlv/yDyzRFc98csUIqUnxeTc/D4lc0rKozSZbhOqpRyARoBCjigtc4t8xMopafUevjyE1awV05+iyX+yMUrXkXcQusxp/ojF694FRl05hu+jaw6+8XD0d9yoHGfyo5xSRrtX8SO2rdXdoxL0vLEn2yIvKuyY5RZh+hfWF+F8gJ0jP6FxWH3V3aMMusd9wP7G/Wt7BiXpPGBhWitnfslaBeR+Z8XKmzQk9eQjyv0tZXXRXt0lFJ3FylqqJRKAXZpreOuTCwhhBBCiPIry6Wrp4GOwHLHdFdgK1BHKfW61vp/VyibEEIIIcriKrnb7mpUloaOC9BEax0LxvfqAF8BNwKrAGnoCCGEEOKqVJaGTs3zjRyHOEdZklKqzGN1hBBCCHGFSI9OqcrS0FmhlPoTOP/raPc4yryB5CsVTAghhBCivMrS0BkC3A10ckxvAcK11hlAtysVTAghhBBldBV90/TV5qJfGKiN+8+PAlbgLozGzb4rnEsIIYQQotxK7dFRSjUEHnI8EoDvMb53R3pxhBBCiKuJjNEp1YUuXe0HVgO3a60PAyilhldIKiGEEEIIJ7hQQ+du4EFguVJqITAP45uRhRBCCHE1scsYndKUOkZHa/2r1vpBoDHGlwW+BIQppWYqpXpXUD4hhBBCiMtWlsHIGVrrb7XWdwA1gG3AmCueTAghhBBlo+0V96hiLtrQKUhrfU5rPUdr3eNKBRJCCCFE1aWU6quUOqCUOqyUermE+QOVUvFKqe2OxzMF5j2hlDrkeDzhjDxl+R4dIYQQQlzNrpIxOkopM/AfoBdwGtislPpda723SNXvtdYvFFk2CHgVuAHQwFbHsufKk+mSenSEEEIIIS6gPXBYa31Ua23BuJHpzjIu2wdYorVOcjRulgB9yxtIGjpCCCGEKDOl1CCl1JYCj0EFZlcHThWYPu0oK+oepdROpdR8pVTNS1z2ksilKyGEEKKK0xX4hYFa6znAnHKs4g/gO611jlLqWeBLoLtTwpVA6Sv8+xhKqavjwqEQQghRQbTWFfq9cxlTn6iw91rvsV+W+tqUUh2BSVrrPo7psQBa66ml1DcDSVprf6XUQ0BXrfWzjnmzgRVa6+/Kk7dCenT2Nyr3JbYK0/jAQuZUf6SyY1ySQWe+wRJ/pLJjXBK30HqkjRpQ2THKzHf6r5xqX7V+/aTmpuUsD7u3smNckm5x81kbcXdlxyizm2N+Zm/9Wys7xiVpevhvjjTvVdkxyqze7iX8GfZgZce4JLfHzav4J71KBiMDm4EGSqk6wBmMLx5+uGAFpVSk1jraMdmf/N/PXAS8qZQKdEz3BsaWN5BcuhJCCCGEU2itrUqpFzAaLWbgM631HqXU68AWrfXvwFClVH+MHwtPAgY6lk1SSk3GaCwBvK61TipvJmnoCCGEEFXdVfRFflrrBcCCImUTC/w9llJ6arTWnwGfOTOP3HUlhBBCiGuW9OgIIYQQVd3VM0bnqiM9OkIIIYS4ZkmPjhBCCFHVVeD36FQ10qMjhBBCiGuW9OgIIYQQVZ2M0SmV9OgIIYQQ4polPTpCCCFEVXcVfY/O1UZ6dIQQQghxzZIeHSGEEKKqkzE6pZIeHSGEEEJcs6ShI4QQQohrlly6EkIIIao4LV8YWCrp0RFCCCHENeuq6dHx6tSW8PGDwWQiZf5Ckj75sdB85epKxFsj8WjWAFtyKmdHTMV6Jg5czERMeQmPpvXAbCb1t6UkzfkB5eZKza/fQbm5osxm0havIfGjr52eu+Prj1GzeyusWTmsHD6HxN3HC803e7jRc/ZQ/GqHoW12Tvyzjc1TvwegyaPdaTqwF9pmJzcjm9Vj5pJ86CyhrerS+a2nHS8comb8wvGFW8qd9ZU3Z7Bq7SaCAgP49etZxeZrrZn6/ixWr9+Mh4c7b4wfSdNG9QH4bcESZn85D4Bnn3iQO/v1AmDP/kO88sYMsnNy6NyxHWNfGoxSqtxZzzM3ao17/6fBZCJ30z/kLv+55HrXd8Dz8TFkfjAK++kj4OWLx2OjMdesT+6W5Vh+/SSvrufgySjfQLTVAkD2nNfQGSlOyeveoR0BI15AmUxk/L6AtK++KzTfrVULAoYPwbV+XZImTCZr2ar81xAeRuD4UZjDQgFNwvCx2KJjMUdGEDxlAiZ/Pyz7D5I0aSpYrU7Je179N54kuEcbbFk57B/6H9J3HStWx6dFXRp/OASzhxuJS6M4PP7zvHnVn+5L9Sf7om12Ev+J4uhk41irNXQAkQ/3QNvsHBr/GedW7HBa5jqTnyKgRxvsWRYOv/QRGSVk9m5Rl/rvv4DJw43kpVEcm/AZALUnPE5g7xvQFivZJ2I4/NLH2FIzAfBqUpt6bz+L2dcLbbez89Yx6JzccmX17tyW8FeeRZlNJP+wiMQ5Rc5vbi5Ue3sUHs3rY0tO48ywqeSeiQPAvdF1REx+EbOPF9quOX73MLQlF99+XQh57gGU2UTa8k3Ev/N5SU992TxvvoHgMc+hzCZSf15IytzvC833aHs9wf8ejFvDusT9+00ylqzOmxcx8w3cWzQhe9tuYl+YmFceOmUUHm1bYE/PACD+lXewHDjq1NxN33iCsB6tsGVZ2DF0Jqm7jher02js/VS/rwuuAd4sqvtkXnlQh8Y0nfw4vk1rse3ZD4n5c1PevH5nvyF130kAss8ksuXx6U7NXW4yGLlUV0dDx2QifOIQTj81jtzYBGr/+AHpyzZiOXIyr4r/vb2xp6ZzrM/T+Pa7hdCRTxE9Yhq+fTujXF053v95lIc7df6aTepfK7CeiePUwJfRmdngYqbWN9PJWLWF7B37nRa7ZveW+NeJ4IdOIwlrU49OUwfy2x2TitXbOfsvotftw+Rq5rZ546jRrQWnl+/k8K/r2ff1MgBq9WpDh1cfZeGjb5O0/zS/9JuAttnxDAvgnsVvcGJJFNpWvq7JAf168fA9/Rk3ueQDdPX6zZw8fZYF389l5579TJ7+Md998j4pqWnM/Pxbvp/7IQAPPD2Urp064O/ny+TpHzNpzFBaNGvMc6MmsmbDFjp3bFeunHmUCfe7BpE1ZxI6JRHPoW9j3bMJHXe6cD13D9w63Y7txIH8slwLlkXfYYqohSmiVrFVZ3/3ntEgciaTicDRw4h/cTS2uHjCvphJ1up1WI+dyKtii43l3OS38Hnk/mKLB736MqlffEPOpq0oT4+8E5f/C4NImzefrCXLCRjzEt79+5Hx8+9Oix3UozWedSLZ2OFF/No2oOHb/yLq1nHF6jV8+18cHDmL1K2HuP7bcQR1b0XSsu0E3NyMkL7t2Nx9FNpixTXEDwCvhjUIG3Azm7oMxz0iiJY/TmBjx2FO+U2egO5t8KgbybabXsCnTQPqThvErtvGFqtXd9ogjoyaSXrUIZp8M56A7q1JXraN5FU7OPHm12CzU3v8o9R48W5OvPE1mE00+HgYh178gMy9J3AJ9EHn2soX1mQiYtLznBw4ntyYBOr89D5pyzZgOXwq//Xc2wdbajpHej6D321dCBv9FGdemgZmE9Wmj+bs6Onk7D+GOcAXbbVhDvAlfMxTHLtrKLakVCLfGoFXx5ZkrndSQ9JkImT8C0QPehlrTALV531E5vL15B7NPydbo+OInzAd/yfuLbZ48hc/YvLwwPe+fsXmJc34pFCjyJlCe7TCu04EKzoMJ6BtfZq//TTrbp1QrF7s4iiOz11M1w3vFSrPOpPAjmGzqPvcbcWWsWVbWNOj+D4mrn5XxaUrjxYNyT15ltzTMZBrJW3BSnx6dChUx6dHR1J+/QeAtEWr8erYypihNSYvDzCbUB5u6Nxc7OnGJzOdmQ2AcnFBubiAdm6Lt3bvthyavwaAuKgjuPl54xkWUKiOLdtC9Lp9ANhzbSTsPo53ZBAAuelZefVcvdzz8tmyLXmNGhd3V6fFvqHV9fj7+ZY6f/maDfTv2wOlFC2bNyEtLZ34hCTWbtxKx3at8ffzxd/Pl47tWrN241biE5LIyMikZfMmKKXo37cHy1avd05YwFSrAfaEaHRSLNisWLevwaVZ+2L13Po8jGX5L2At8Kk7Nwf78X3g6LWpCG5NG2M9fQbb2WiwWslasgzPLjcVqmOLjiX38NFib/YudWqDi5mcTVsB0FnZ6JwcANxvaE3WspUAZP61GM9bbnZq7pC+7Yj90Vh/6tZDuPh541ZkP3YLC8DFx5PUrYcAiP1xJSG3Gv8X1Z7ozcmPfkVbjF6m3IRUx3pvIO7XtUavyck4so7F4NemvlMyB/VtR7wjc3qUkdm1SGbXsADMvl6kRxmZ439cSVBfI3PKyh3gOMbSog7iVi0YgIBbWpG57ziZe43GqfVcerkbZp4tGmI5cZbcU8b5LfWvVfj26Fiojk/PDqT8bJzfUheuwatjSwC8O7Uh58AxcvYbvVW25DSw23GtGYHl+FlsSca2zli3Hb8+ztsv3K9vRO7Js1hPx4DVSsbfK/HuVnhftp6NxXLwWInn1eyN27FnZDotT1mF923LmR+NRlTy1sO4+nnhXmS/OD8vJy65WHnWqQTS9p5EV8XeEbuuuEcVU+YeHaVUBNAe0MBmrXWM00KEh5AbHZ83bY1JwKNlo8J1woKxRicYEzY79rRMzAF+pC1ag0/3jtRb/S0mD3fips3BnpJu1DOZqP3Th7jVqsa5b/8ke+cBnMk7IpD0s4l50xnRSXhHBJJVwgEE4ObnRa2erdk9d2FeWdMnenL9v27F5ObCXw+8mVce2roet0z/Fz41QlgxbFa5e3PKIjY+kYiwkLzp8LAQYuMTiI1PICIsNL88NL88vGD90BBi4xNxFuUXhE5OyJvWKYmYajUsVMdUvS6mgBAs+7dC1wFlXrf7/S+CtmPdtZ7cf368+AJlYA4LwRYblzdti0vArVmTMi3rUrMG9rR0gqe9hrlaBDmbo0j5zyeYfH3Qael5b8q2uHjMoSEXWdulcY8MIudM/v9bTnQi7pFBWArsx+6RQeREF6hz1qgD4FWvGv43NqHO2IewZ+dy5LWvSNt+BPeIYFK3Hiyw3iTcI4KcktktIoics/n7Rk50Im6RweQWyOwWGYzlbOHX5VbC84c92IOE39cC4FkvEq2hyXcTcA32I+HXNZz972/lyuoSUeDcBeTGJOBZ9PwWHkxujOMcaLNjT8/EHOiHW53qoKHmZ5NxCfIn5a9VJH0yH8uJaNzq1sC1ehi5MQn49uqIcnVeB71LWAjWmALn5Nh43Fs0dsq6A18cSMDgR8jeuJ3E9+ZCbvkuCxbkERlEVoF9OTs6CY/IoBIbNZfK5O7KzYveQNtsHPnod2L/Lv9wAlExynRkKKWeASYCywAFfKSUel1r/Vkp9QcBg5yW8gI8r28EdjtHujyC2c+HWt9MJ3PdNqN3yG7nxF0vYPL1pvrHE3BrUBvLoRMXX+kVoMwmuv9nCHs+W0TayfwTyN4v/2Hvl/9Qb0BHWg8dwMrhswGI33aE+T1eJqB+NW55/1lOLd+BrZzjBK45SuF+x5Nkf//hJS2W/e176NQkcPfA4/Ex6LZdsW5dcWUylpFyMePe6npiH3sWW2wsQW9MxOu2PmSvWlupucpCuZhwCfQh6tZx+LauT9NPRrCx3ZDKjlUm1Yfdg7bZSPjJGCulzGb82jdm561jsGfl0OyHSWTsPErKml2Vkk+ZzXi2bcrxe17CnpVDra/eJHv3ITLX7yDm1Y+p/sFYtN1OVtQ+3GpFVkrGS5H0/mfYEpLA1ZXQV18i4On7SZ71TWXHKpNlbV8kJ+YcnrXD6DD/FdL2niTzRNzFF6wo8hMQpSrrR4DRQGutdSKAUioYWAeU2NDRWs8B5jjqXrSfyxqbgGtkfo+BS0QI1tjCPQPWuERcIkOwxiaA2YTJ1wtbciq+t3clY/UWsNqwJaWQFbUXj+YNjIaOgz0tg8yNO/HufEO5GzpNn+hJ44e7ARC/4yg+1YKJdczzjgwiI+Zcict1futpUo7FsHvuohLnH/ltA53efJKVRcqTD5/FmpFNYKMaJOwsPtjSmcJDg4mJy//kGRuXQHhoCOGhIWzetjO/PD6Bdq1bGD04BevHJxAeGuy0PDo1CRWQ33uh/IPRKQX2C3dPTBG18Bw8xZjvG4DHwHFkf/HmBcff6NQk44+cbKzbVmGq2QCc0NCxxSVgDg/LmzaHhWCLj7/AEgWXjSf34BHjsheQvXItbs2bkPnH3yhfHzCbwGbHHBaKLT7hImu7uGpP9qHaoz0BSN1+GPfq+f9v7pHB5EQnFaqfE52Ee2SBOtXy6+ScTSLhr40ApG07bFxaCfYjJyaxyHqDyIkpvN5LETGwL+GPGJnTdxzGvVoIaQUyW6ILnzMs0Yl5l6Ty6hR4/tD7uxHUsy177p9U4HUmkrphL9YkY83nlkXhfX3dcjV0rDHGues815LOb7GJuEaEYo1JNM5vPl7YzqVijUkgc/NubOccl6hWbsGjWX0y1+8gfdkm0pcZg2UDHujrlLFPeXniEnCJKHBODg/FFlv+3lpbgmP75+aS9usi/AcWH99zqWo/2Yuaj3YHIGX7UTyrB3P+LOwRGUR29OXvcwXlOM7tWSfiSFy3F7/rr7u6GjqiVGUdo5MIeecUHH877RpF9q6DuNauhmv1cHB1wbffLaQv21CoTvqyDfgPME5yvn06k7nBGHRnjY7Hq4NxPVt5uuPRsjGWo6cwB/pj8vU2yt3d8LqpNZajpyivvV/+w899xvNzn/EcX7iVBvd2AiCsTT0saZklXra6YfS9uPl5sv7Vwnd9+dUJz/u7Vo9WpBwzGme+NUNRZuO/xqd6MP71qpF2qmxvmOXRtVMHfl+4FK01O3bvw8fHm9CQIG6+sS3rNkWRkppGSmoa6zZFcfONbQkNCcLb24sdu/ehteb3hUvp1qnDxZ+ojOynDmEKiUQFhoHZBZdWnbDt3ZxfITuTjElPkDn1WTKnPov95MGLNnIwmcDLMU7JZMalyQ3YY06WXv8SWPbtx6VmdcyREeDigmev7mStKtuYJcveAyhfH0wB/oAxLifXMYg5Z+t2PLvfAoDXbb3JckIvz9nPF7Glx2i29BhNwt+bCb/PWL9f2wZY0zILXbYCsMQlY03Pwq9tAwDC77uFhIXG/0XC35sIuLk5AJ51I1GuLuQmppKwaAthA25GubngUSsMz7qRpEYdvuzMMV8sZEevUezoNYqkvzcR6sjs08bInFskc25cMra0THzaGJlD77uFJEfmgG6tqD7kTvYNnIY9K38cV/KK7Xg1qY3J0w3MJvw6NCPrYPnOG1m7DuJ2XTVcaxjnN7/bupC2tMj5belG/O82zm9+fTuRucH4YJG+OgqPRtehPNzBbMKrXXMsh4391Rxk7CsmPx8CH7mN5B9K/hB1OXJ2H8C1dnVcqhv7svett5Cxovzj78wh+ZcOvbvfRO7h4+Ve54nPl7Cmx1jW9BhL7N9bqH5fZwAC2tbHmpbplMtWLv7emNyMfgHXIF+C2jck/eCZcq/XqWSMTqnK2qNzGNiolPoNY4zOncBOpdQIAK31jHKlsNmJmzyTGnOngMlMyk+LsRw+SfCLj5G9+yAZyzeSMn8RkW+Pps6iudhS0ogeMQ2Ac9/+QeSbI7juj1mgFCk/Lybn4HHcG15HxLRRRoNBKdIWriZjxaaLBLk0p5Ztp2b3ljyw5l2s2RZWjpiTN+/uRW/wc5/xeEcG0XrYAM4dOsPdC42ehz1fLOHAdytoNrA31Ts1w261kZOSkXfZKrx9Q/o8fwd2qw1t16wd/wU559LLnXf0q9PYvG0nycmp9BjwKM8//RhWx23KD9x1G106tmP1+s3cev9TeHp4MHnccAD8/Xx5duBDPPjMMAAGP/lw3qDmV0YOyb+9vEM7591xBWC3k/PrJ3j+61XH7eVLsceewq33Q9hOHy7c6CmB19jZKA9Po5HUrD1Zn7yGPhdvrM9sBmXCdmgn1o1LnJPXZid5+keEfPgWymQm44+/sR47jt+ggVj2HSR79TpcmzQi+O3XMfn64NG5I37/GkjsQ0+B3U7Kh7MI+Xg6Siks+w+S8etfAKR8PIfgKRPwf/YpLAcPk/H7387J65D0TxTBPVpz48aPsGVZODDsP3nzblj6Dlt6jAbg0JhPaPzhEEwebiQt3U7S0m0ARH+3nMbvP0e7le9it1jZP9RYPvPAaeJ+X0/71e+hrXYOvfyp03odzi2NIqBHG9qs/w+2rBwOD8/P3HLJdHb0GgXA0bGf0MBxe/m5ZdtIXhYFQJ03nsHk5kqzecatz2lRBzk6Zg62lAzOzv6DFn+/DVpzbmkU55ZGlS+szU7MazOp+dkU4/by+cb5LWTYo2TvOkT6so0k/7iIatNHUe+fT43by4e/BYA9NZ3Ez36hzs/vo7UmY+UW0lcY+334hGfxaFwXgISPv8Vy3IlvvDY7CW9+TMSsN43b139ZRO6REwQOeZycPQfJXLEB92YNCf/gVUy+vnjd0oHA5x/j9F3GiIXIL97FrU5NlJcntf75hviJM8hat5WwaS87GmiKnANHSHj9A+dlBuL+2UZoj1Z03fg+tqwcdg6bnTev09KpeXdNNZ7wMNXuvgmzpxvdt33MqW+Wc2j6T/i3qkvbz0fgGuBNeO82NBx9H6tuGY1vg2o0n/6M8SZvUhz56Perr6EjSqV0GW7pUUq9eqH5WuvXLrCs3t+o72VEqxyNDyxkTvVHKjvGJRl05hss8U6+VfoKcwutR9qoAZUdo8x8p//KqfbdKjvGJam5aTnLw8p/aaAidYubz9qIuys7RpndHPMze+vfWtkxLknTw39zpHmvyo5RZvV2L+HPsAcrO8YluT1uHlpr532hWBmkvXRHhXW1+L7/R4W+tvIqU49OwYaMUioQSNZlaSEJIYQQQlSiC47RUUpNVEo1dvztrpRaBhwBYpVSPSsioBBCCCEuQsbolOpig5EfAM5/+cwTjvqhwC3Am6UtJIQQQghxNbjYpStLgUtUfYDvtNY2YJ9S6ur4+QghhBDi/zv59fJSXaxHJ0cp1VwpFQp0AxYXmOd15WIJIYQQQpTfxXplhgHzMS5Xvae1PgaglOoHbLvC2YQQQgghyuWCDR2t9Uag2A+caK0XAAuuVCghhBBCXIIqOEi4opTpm5GVUsFKqQ+VUlFKqa1KqQ8cPwMhhBBCCHHVKutPQMwD4oF7gHsdf39/pUIJIYQQ4hLI7eWlKuudU5Fa68kFpqcopR64EoGEEEIIIZylrA2dxUqpB4EfHNP3As77BTkhhBBCXDb5sYLSXbCho5RKw/gRTwW8BPzPMcsMpAOjrmQ4IYQQQojyuNhdV74VFUQIIYQQl6kKjp2pKBfr0Wmstd6vlGpT0nytddSViSWEEEIIUX4XG6MzAhgEvFugrGCzsbvTEwkhhBDi0kiPTqkudnv5p0qpCK11N611N+ALjLE5uzEGJAshhBBCXLUu1tCZBVgAlFJdgKnAl0AKMOfKRhNCCCFEWWi7rrBHVaMudEuaUmqH1rql4+//APFa60mO6e1a61YXfQKlqt5WEUIIIcpBa60q8vlSnuxZYe+1/p//U6GvrbwuNkbHrJRy0VpbgR4Y43XKumyeqJr9LydbpWhz6ne+jXy4smNckoejvyVt1IDKjnFJfKf/iiX+SGXHKDO30HrEdu9S2TEuSfiyVWyIvKuyY1ySDtG/sDjs/sqOUWa9435gT91+lR3jkjQ7uoCEflVnXw5ZsIqZNR6p7BiX5LnT31T8k1bBnpaKcrHGynfASqVUApAFrAZQStXHuHwlhBBCCHHVutj36LyhlFoKRAKLdf51LhPw4pUOJ4QQQogysFd2gKvXRS8/aa03lFB28MrEEUIIIYRwnrL+erkQQgghRJVT5gHFQgghhLg6VcXbviuK9OgIIYQQ4polPTpCCCFEVSc9OqWSHh0hhBBCXLOkR0cIIYSo6uT28lJJj44QQgghrlnSoyOEEEJUcXLXVemkR0cIIYQQ1yzp0RFCCCGqOhmjUyrp0RFCCCHENUt6dIQQQogqTsbolE56dIQQQghxzZIeHSGEEKKqkzE6pbpqGjq+t7SmxqR/ocwmEuctIfa/PxWar9xcqP3ecLyur4f1XBrHh7yD5XQc5gBf6swag1fL+iT9uIzTE+fkLRPYvzPhL9wLGnJjkzg+bAa2c2lOzd1m8uNU694SW5aFDcNnc27X8WJ1Woy5j+vu64ybvzfzGzydV9560qOE39wUALOHGx4hfvzUZBAALcc/SLUerQDY8/6vnPx9Q7mzmhu1xr3/02AykbvpH3KX/1xyves74Pn4GDI/GIX99BHw8sXjsdGYa9Ynd8tyLL9+klfXc/BklG8g2moBIHvOa+iMlHJnBXjlzRmsWruJoMAAfv16VrH5Wmumvj+L1es34+HhzhvjR9K0UX0AfluwhNlfzgPg2Sce5M5+vQDYs/8Qr7wxg+ycHDp3bMfYlwajlHJKXgC3du3xGfIimExkL/iLzHnfFprvee/9ePa7DWw27MnJpL7zFva4WAD8p76Na9Om5O7eRcr4sYWW837qGdxv6Qo2O1l//EbWL4WPj/KqPflpArq3wZ6Vw5HhH5O562ixOl7X16Xe+y9i8nAjeVkUJybMBSDo9o5UH/kAng1qsKffGDJ2HgHAJdCHBnNG492qPvE/LOfE+E+dmrnRGwMJ6dEaW1YOe4bOJG3XsWJ1fFvUodmHz2P2cCNh6TYOjP8CAJ9mtWnyzr8wu7uirTb2vTyX1G1H8KpfjWYfPIff9XU4PHUeJ2b+6ZSs3l3aEjFhEMps4tz3i0mc/WOh+crNhWrTR+LZvD62c2mcHjqN3DNxALg3uo7IKS9g8vECrTk24CW0JZfQkY8TcFd3zH4+7G9xr1NyFuTatj3egxz78uK/yP6x8L7sMeB+3PsY+7JOSSb9/bewx8fmvyZPL/xnfUnu+jVkzPoAAL+p72MKCkZbcgBIfWUUOiXZqblvfu0xanVvhTUrh+Uj5pCw+3ih+S4ebvSaNRS/2mFom50T/2xj47TvC9Wpc2s7+swZxk+3TSB+5zF8a4TwwPK3ST4SDUBs1GFWj/vcqbmvJUqpvsAHgBn4VGs9rcj8EcAzgBWIB57SWp9wzLMBuxxVT2qt+5c3z9XR0DGZqDnlWQ4/8iq50Yk0+mM6KUs2kX3oVF6V4Ad6YUtJZ2+XwQTc0ZlqY5/g+JB30DkWot/9Bo9GtfFsWCt/nWYT1Sc9w74eL2A7l0a1cU8QOvA2Yt6b57TYkd1b4lsngj9vHklwm/rcMPVJltz+arF6Z5Zs4+DnS7h97buFyrdN+jrv7wZP9SaoeW0AqvVoRdD117Gw1zhMbq70+Gk8Z5ftwJqedflhlQn3uwaRNWcSOiURz6FvY92zCR13unA9dw/cOt2O7cSB/LJcC5ZF32GKqIUpohZFZX/3ntEgcrIB/Xrx8D39GTd5eonzV6/fzMnTZ1nw/Vx27tnP5Okf890n75OSmsbMz7/l+7kfAvDA00Pp2qkD/n6+TJ7+MZPGDKVFs8Y8N2oiazZsoXPHds4JbDLhO/Qlzv17JPb4eAL/O5uc9WuxnTiRV8V6+BBJzw2CnBw877gTn0GDSZ3yGgCZP8xDeXjgefsdhVbr0edWTKFhJA18DLRGBQQ4J6+Df/c2eNSJZMfNQ/Bp05A6Uwex5/aXi9WrM+1Zjo2eSXrUQRp9/Qr+3VqTsnwbmftPcuiZt6nz1uBC9e3ZuZx65zu8GtXCs3Hx/aY8Qnq0wqtOBGs7DMO/bQOavP00m259pVi9Jm8/w76Rc0jZeojW375McPdWJC7bTsOJj3B0+nwSl20npEcrGkx4hK13v05ucjoHxn9B6K03OC+syUTkpOc48cQr5MYkUPeX90hbugHL4fzzW8B9fbClpHO4+7/wu70LYWOe5MzQt4zz2IxRnBn5Ljn7j2EO8EVbbQCkL93Iua/+oP7ST0p75nJl9n7uJVJfGYk9IR7/92aTu2EttlMF9uWjh8h+ydiX3fvdiddTg0l/67W8+Z6PPY11985iq057Zwq2wweKlTtDrW4t8a8TwXedRxLWuh6d3xzIL/0nFau3Y/ZfnF2/D5OrmTvmjaNm1xacWmFkdfX24Pqn+xAbdbjQMqknYpnfd/wVye0M+irp0VFKmYH/AL2A08BmpdTvWuu9BaptA27QWmcqpZ4D3gYecMzL0lq3cmamq2KMjlerBuQcj8FyMhada+XcH6vx792+UB3/3jeSOH8ZAMkL1uJ7cwsA7Fk5ZGzeh862FF6pUqAUJi8PAMw+XuTGJjk1d40+bTk+fzUAiVGHcfP3wiMsoFi9xKjDZMclX3BdtQd05MSv6wHwa1iduA370TY7tqwckvedIrJbi3JlNdVqgD0hGp0UCzYr1u1rcGnWvlg9tz4PY1n+C1hz8wtzc7Af3wdWS7H6V9INra7H38+31PnL12ygf98eKKVo2bwJaWnpxCcksXbjVjq2a42/ny/+fr50bNeatRu3Ep+QREZGJi2bN0EpRf++PVi2er3T8ro0boL1zBns0dFgtZKzfBnuN3UqVCd3+zbIMT7N5u7biyk0NH/etih0Zmax9Xr2v5PM/30J2hhsqJOTnZYZILBPexLmrwAgPeogZn9vXMMCC9VxDQvE7OtJetRBABLmryCw740AZB8+Q/aRs8XWa8/KIX3Tfuw5ucXmlVdo33ZE/7gKgJSth3Dx88atyLHnFhaAi48nKVsPARD94yrCbjUatVqDi68nAC5+XuTEngMgNyGV1O1H0Lk2p2X1bNkQy4mz5J6KgVwrKX+uwrdnh0J1fHveSMrPSwFI/XsN3h1bAuDTuQ3Z+4+Ts9/orbIlp4HdeEfL2n4Aa/w5p+UsyKVhE2xnz2CPcezLq5bh2qHwvmzdmb8vW/fvxRSSvy+b6zfEFBBI7rbNVyRfaa7r3ZaDP60BIG7bEdz9vPEqsl9Ysy2cXb8PAHuujYRdx/GJDMqb327UvWz/75/YrsB++/9Ee+Cw1vqo1toCzAPuLFhBa71ca33+ZLcBqHElA5WpoaOUcldKPayUGqeUmnj+4awQbhHBWM4m5E1bohNxDQ8uVMc1Iojc83VsdmxpGZgDS38TxGrj9PhZNFn8Ic23fI5Hg5okzvvHWZEB8IwIIuNsYt505tkkvCICL7BEybyqh+BTM5TYNXsASN57kshuLTF7uuEW5EP4TU3xrhZ8kbVcmPILQifnb2OdkojyL7xOU/W6mAJCsO3feknrdr//RTyHz8C1533lynipYuMTiQgLyZsODwshNj6B2PgEIsLyT7rhofnl4QXrh4YQG5+Is5hDQrDHx+VN2+PjMYWElFrf49Z+WDZtvPh6q1XDvWs3Av87G/+pb2OuXt0pec9ziwgip+DxdzYRt4igYnUs0YkXrFOR3CMDyT6Tnyc7OhGPyMJ5PCKDyI7O/3CTfTYJ90jj+Dw44UsaTHyUzlH/ocGrj3H4je+uWFaX8GByo/O3rzUmodj5zSUimNzoeGPCZseelok50A+366qD1tT6/HXq/PYBwYPuuWI5CzIFh2BPKLAvJ8RjDr7Avty7H7lbHPuyUng//TyZc2eWWNdn+Mv4f/Qpng8+7tTMAN4RgaQXOCenRyfhfYFzspufF7V7tub0WuPcG9L8OnyqBXFy2fZidX1rhnLv31Po/+N4Ito3cnr2qkQpNUgptaXAY1CB2dWBUwWmTzvKSvM08HeBaQ/HOjcopQY4I29ZL139BqQAW4Gci1V2vOhBF6t3RbmYCXmsL/v7DcdyIoYarw8ifMg9xH7048WXrWC1B3Tg1F+b8m4PjFm5i6CWden1+yRyElNJ2HoIbbvC/ZJK4X7Hk2R//+ElLZb97Xvo1CRw98Dj8THotl2xbl1xZTJeQ9x79sK1YSPOjRh28cquruhcC+eefxb3Tp3xHf0yyS+9eOVDXsNqDOzFwYlfEvfXJsL7d6Dpe4OJum9KZccqRrmY8bqhKcfuGo49K4fa/3uD7N2HyVi3o7Kj5XHr1gtzg0ZkjDH2ZY/bBmDZshF7YnyxuunTp2BPTABPT3zHTcatex8syxZVdGQAlNlEz4+HsOvzRaSdjAeluGniIywfMbtY3Yy4ZL6+8SVyktMJuf46+n46nO97vExueYYTOFsFXrrSWs8B5ly04kUopR4FbgBuKVBcW2t9RilVF1imlNqltS7X2IiyNnRqaK37lnWlBTeCUuqiN/dbYhJxq5b/acEtMpjc2MKftHNjknCtFkJuTCKYTZh9vS84sNiraR1j3SdiADj35xrCny//p6EGA3tR75FuACRuP4p3tWDOf1bzqhZEZsyldyXXvrMjW8Z9Uahs74e/sffD3wDo+J8hpB6NLk9sdGoSKiB/Gyv/YHRKgW3s7okpohaeg42TvfINwGPgOLK/ePOC4290quMTc0421m2rMNVsABXU0AkPDSYmLv+TcmxcAuGhIYSHhrB5W/7YgNj4BNq1bmH04BSsH59AeGj5esoKsiUkYAoNy5s2hYZiT0goVs+1TVu8H36McyOGQu7Fu8ft8fHkrDYu0+SsWY3v6OLjZy5V+MC+hD5iDNDO2H4Y92ohpDvmuVULxhJT+DKvJSYJt8j8bVVSnSutxpO9qfFoDwBSth/Bo3p+Ho/I4EK9NwDZ0UmFenk8qgWRE20cn5H335I3MDn29w00nfHsFcttjU3ENTL/2HOJCCl2frPGJOIaGYrVcX4z+XphO5dKbkwCmZt3YzuXCkD6yi14NKt3xRs69sQETCEF9uWQUGyJJezLrdri+cBjpI4Zmne526VxM1yatcDjtjtRHp5GQz07i8wv5hiNHICsLCwr/8G1YeNyN3SaPdGTJg8Z5+T4HUfxKdD77RMZREYp5+Rb3nqalGMx7JprPL+bjweBjWrQ/wdjHI5nqD99PxvBwqdmEL/zGDkW4whJ2HWc1BNxBNSNIH5n8QHwgjNAzQLTNRxlhSilegLjgVu01nkdKFrrM45/jyqlVgCtgXI1dMo6RmedUur68jzRhWTuOIR7nUjcaoahXF0IvKMzKUs2FaqTsmQTwfd2ByCg382krSs+yK0gS2wSHg1q4hLkB4Bf51bkHD59wWXK4tAXS1jYaxwLe43jzMItXHdvZwCC29QnNzXromNxivKtH4mrvzcJWw7llSmTwi3QB4CAJjUJaFKTmJW7SltFmdhPHcIUEokKDAOzCy6tOmHbW+D6eXYmGZOeIHPqs2ROfRb7yYMXbeRgMoGX4/KhyYxLkxuwx5wsV85L0bVTB35fuBStNTt278PHx5vQkCBuvrEt6zZFkZKaRkpqGus2RXHzjW0JDQnC29uLHbv3obXm94VL6dapw8WfqIys+/fjUr0GpogIcHHBvVt3ctatLVTHpX4D/IaPJGXC2DKPtclZuwa3Vm0AcG3ZCtvp8u/HsV8sZHevkezuNZJzCzcRcm9XAHzaNMSWmkluXOE3h9y4c9jSsvBp0xCAkHu7cm7RpqKrvaJOf76YDT3GsKHHGOL/3kzkfV0A8G/bAGtaJpYix54lLhlrehb+bRsAEHlfF+IXGvt8Tsw5Am8y7ngM6tyczKMxVyx31s6DuF1XHdca4eDqgv/tXUhfWviSZdrSjfjfbTTi/G7tRMZ64/yWvioK94bXoTzcwWzCq/315Bw6Vew5nM16cD/m6jUwhTv25S7dyd1YeF82122A9wsjSXt9bKE7p9KnTyH5yftJfupBMj+biWXpIjK/mAMmM8rP37GwGdd2HbGeKH9DYc+X/zC/73jm9x3PsUVbaXiPMZYorHU9LGmZZJZwTm43+l7cfD1ZW+CGEEtaFl+2fI5vbhrONzcNJ27bkbxGjkeQL8pk3J3pWysU/zrhpJ6MK7beyqTtFfe4iM1AA6VUHaWUG/Ag8HvBCkqp1sBsoL/WOq5AeaBSyt3xdwhwM1BwEPNluWCPjlJqF6Ad9Z5USh3FuHSlAK21Lt8I2fNsdk5PmEO9/00ybi//finZB08RMeJhMncdJnXJJhK/X0Lt94fTdNUsrMlpHH8h/06cpmvnYPb1Qrm64N/nRo48OonsQ6eIfv97Gvz4Jtpqw3ImjhMjLu2yzMWcXbqdyB6tuH3dDGxZFjYOz+/y7LvkTRb2GgdAq1ceovaAm3DxdOPOLR9x5Lvl7H7XuLW79p0dOflb4QGxytWFnr8YQ6By07JY/+LM8l+6stvJ+fUTPP/1quP28qXYY0/h1vshbKcPF270lMBr7Gzj05nZBZdm7cn65DX0uXhjfWYzKBO2QzuxblxSvpwFjH51Gpu37SQ5OZUeAx7l+acfw2q1AvDAXbfRpWM7Vq/fzK33P4WnhweTxw0HwN/Pl2cHPsSDzxhd6YOffDhvUPMrI4fk317eoZ3z7rgCsNtI++h9At6ajjKZyPp7AbYTx/Ee+BS5B/ZjWb8On0GDUZ6e+E007k6xx8WRMsHYTwLe/wiXmrVQnp4Ez/uRtOlvY9mymczvvsVv3Ct43XMfOjuLtHffdl5mIHnpVgJ6tKHluv9iz8rh6PCP8+Y1X/Iuu3uNBOD42DnUPX97+fIoUpZFARDY90aum/IMLsF+NPrfeDL2HOPAw5MBaLVxFmYfT5SbC0F9bmT/Q6+Rdaj8DbWEf7YR0qM1N2/8AFuWhb3D8seDdFj6Fht6jAFg/5i5NPvweUweriQs3U7C0u0A7Bs5m0ZTBqJczNhzLOwdZfTCu4X6c+Piqbj4eqLtmlqD+rGu80hs5blEYbMT89pMan0xGWUykTx/CTmHThL60qNk7TpE+tKNJP+wmOrvjqL+sk+wJadxepjxf2xPTSfps1+p88t7gCZ9xRbSVxjHatiYJ/G/oyvK050Ga74k+YdFxH/47QWCXAK7jYyZ7+M3eTqYTOQsWYDt5HE8H30K66H95G5ch9fTg1EenviOdezL8XGkvT6u9HW6uuI3+R0wuxjnoO1byVnknNv3zzu5bDu1urfkoTXvYs2ysGJk/tWVexe+wfy+4/GOCKLt0AGcO3SGe/82erB3f7GE/fNWlLreyBsb027kPditNrRds2rs5+QkZzg1+7VCa21VSr0ALMK4vfwzrfUepdTrwBat9e/AO4AP8KPj6z3O30beBJitlLJjdMRMK3K31mVRWpd+ZUkpVfsiL+jEheY71qGjapb7NvgK0+bU73wb+XBlx7gkD0d/S9qoAZUd45L4Tv8VS7zzb0m/UtxC6xHbvUtlx7gk4ctWsSHyrsqOcUk6RP/C4rD7KztGmfWO+4E9dftVdoxL0uzoAhL6VZ19OWTBKmbWeKSyY1yS505/g9baeV/QVQYJfW6psN+ACFm0skJfW3ld8NKV1vqEozETCSQVmD4HRFREQCGEEEKIy1XWMTozIW+sIo6/S753UAghhBAV6ioao3PVKWtDR+kC17i01naulm9VFkIIIYQoRVkbOkeVUkOVUq6OxzCg+I/hCCGEEKLCSY9O6cra0BkM3IRxL/xp4EYq+wsBhRBCCCEu4qKXnxw/0PWe1vrBCsgjhBBCiEtUFXtaKspFe3S01jagtuOLf4QQQgghqoyyDig+CqxVSv0O5H1LktZ6xhVJJYQQQoiyq9iv7alSytrQOeJ4mIAL/GS4EEIIIcTVo0wNHa31a1c6iBBCCCEuj4zRKV2ZGjpKqVDg30AzwON8uda6+xXKJYQQQghRbmW9vfwbYD9QB3gNOI7xC6VCCCGEEFetso7RCdZaz1VKDdNarwRWKqWkoSOEEEJcBbRdBiOXpqwNnVzHv9FKqduAs0DQlYkkhBBCCOEcZW3oTFFK+QMjgY8AP2D4FUslhBBCiDKTwcilu2BDRynlgfHzD/WB6sBcrXW3iggmhBBCCFFeF+vR+RLjstVq4FagKTDsSocSQgghRNlp+cLAUimtdekzldqltb7e8bcLsElr3eaSnkCp0p9ACCGEuAbpCm55nOnYvcLea6uvX1alWlUX69E5PwgZrbVVqct7bffXuvOylqsMP5z8jQON+1R2jEvSaP8iTrWvWlcUa25aTmz3LpUdo8zCl63CEn+ksmNcErfQeiQOqDrbGCD411X8Hl51fj+4f+w8foh4uLJjXJL7Y77l7M1dKztGmVVbu4KvIx+p7BiX5NHobyr8OWWMTuku1tBpqZRKdfytAE/HtAK01trviqYTQgghhCiHCzZ0tNbmigoihBBCiMsj36NTurJ+M7IQQgghRJVT1u/REUIIIcRV6gL3Ff2/Jz06QgghhLhmSY+OEEIIUcXJGJ3SSY+OEEIIIa5Z0qMjhBBCVHHSo1M66dERQgghxDVLGjpCCCGEuGbJpSshhBCiipPby0snPTpCCCGEuGZJj44QQghRxclg5NJJj44QQgghrlnSoyOEEEJUcVpLj05ppEdHCCGEENcs6dERQgghqjhtr+wEV6+rqqEzcNIztO7WlpysHGaO+pBju48WqzNx3hQCwwKxZFsAeOOxSaQmpuTNb39rR0bOGsPY20dydNcRzK4uDHrzOeq2qI+22/nitbns3bDbKXm9OrUlbNxzYDKRMn8h5z79odB85epKxFujcG/aAFtyKtEjpmI9GwuuLoRPGopH8wZg18S9OYuszTtRHu5Evj8et5qRaLudjOUbSJjxuVOyArh3aEfAiBdQJhMZvy8g7avvCs13a9WCgOFDcK1fl6QJk8latipvnjk8jMDxozCHhQKahOFjsUXHYo6MIHjKBEz+flj2HyRp0lSwWp2W2a1de3yGvAgmE9kL/iJz3reF5nveez+e/W4Dmw17cjKp77yFPS4WAP+pb+PatCm5u3eRMn5soeW8n3oG91u6gs1O1h+/kfXLT07J+8qbM1i1dhNBgQH8+vWsYvO11kx9fxar12/Gw8OdN8aPpGmj+gD8tmAJs7+cB8CzTzzInf16AbBn/yFeeWMG2Tk5dO7YjrEvDUYp53VTu7Zuj9fTxjbO+ecvsn8uvI09+t+Pe8/b0DYbOjWZjI/fwh5vbGNTSBjeQ/6NKSQMtCZt8hjs8TG4XN8aryeeB1cXbEcOkvHx22C3OS0zQLMpTxDeoxW2LAvbh80kZdfxYnUav3w/Ne7rgmuAN3/XezKvPKhDY5q//ji+TWsRNfhDov/cBEDwzU1p9tpjefV86lcjavBHxCzcUu68rSY/TmSPllizLGx+aTbJJeRt/vJ91L63M24B3vxS/+lC82rccSPNRt2D1pqUPSfZOOQ/+DerTdtpT+Li64m22dn3wW+c/n1DubMCuN/YDr9hL4DJTOaff5HxdZHzRcsW+A0dgku9eiRPep3sFfnnC9/nnsX9pg4opcjZvJXUDz4Cd3cCJ0/CpXo1tN1Oztp1pM36xClZC2o7+TGqd2+FNSuH9cPncK6E7dxyzH3Uua8Tbv7e/NDgmbxyr+rBdHz/Wdz8vVAmE9vf/J6zy3YQ0aU5rcY9gNnVBVuulW2TvyN27V6nZxdXxlXT0GnVrS0RdSIZdstzNGjdkKenDOaVAf8use5Hw2ZwdNeRYuUe3h70e/J2DkUdyCvr8ZDxZjG6zzD8gv0Z++VExt0xCl3eLx0wmQibMIQzT48jNzaB2j98SMbyDViOnMyr4ndvH2wp6Rzv+xS+/W4hdNRTRI+Yiv99twJw4s7nMAf5U33OFE7eNxSAc5/NJ2vTTnB1ocZn0/DqfAOZq8t/ksVkInD0MOJfHI0tLp6wL2aStXod1mMn8qrYYmM5N/ktfB65v9jiQa++TOoX35CzaSvK0wPsxvbzf2EQafPmk7VkOQFjXsK7fz8yfv69/HkdmX2HvsS5f4/EHh9P4H9nk7N+LbYT+Zmthw+R9NwgyMnB84478Rk0mNQprwGQ+cM8lIcHnrffUWi1Hn1uxRQaRtLAx0BrVECAc/ICA/r14uF7+jNu8vQS569ev5mTp8+y4Pu57Nyzn8nTP+a7T94nJTWNmZ9/y/dzPwTggaeH0rVTB/z9fJk8/WMmjRlKi2aNeW7URNZs2ELnju2cE9hkwmvQS6RNGok9MR6/t2dj2bQW++kC2/joIbJHDQJLDu597sTz8cFkvGtsY+9h48ia/zXWHVvAwxPsdlAK76HjSHt1OPazp/F86CncuvXBsnSBczIDYT1a4VM3gmUdhxPQpj7Xv/U0a/pNKFYvZnEUxz5bTPf17xUqzzqTwLZhs6j3/G2FyhPX7mVVT6NR7BrgTff17xO/cme580Z0b4lP3Qj+vmkkQW3q02bakyy77dVi9c4u3sbhz5Zw67p3C5X71Amn8Yv9WdZ/ErkpmbgH+wFgy8ph09CZpB+LxSM8gJ6LphC7Yie5qZnlC2wy4TdiGEnDjfNFyKezyFmzDuvxwueL5DffwvuhBwot6tq8GW7XNyfhCaOhFvzfD3Fr3RLL3v1kfPc9lm3bwcWF4A/exb1De3I2bCpf1gKqdW+JX50Ifr95JMFt6tF+6kAW3T6pWL3TS6I48PkS+q8tfJw2H3YnJ//YyKGvluLXoBrdvh7NbzcOJycpjZVPvEtWbDL+jWrQ/dt/80vboU7L7Qx2GaNTqqtmjE67Xu1Z9dMKAA5tO4i3nzcBYYGXtI4HRj7Cb7N+xpKTm1dWo0FNdq/bBUBqYgoZqRnUbVG/3Hk9WjQi92Q0uadjINdK6oKVeHfvWKiOT/eOpP72DwBpi1bj1aEVAO71apG5cQcAtqQU7KnpeDRvgM7OMRo5ALlWcvYexjUipNxZAdyaNsZ6+gy2s9FgtZK1ZBmeXW4qVMcWHUvu4aPGm1UBLnVqg4uZnE1bAdBZ2eicHOO13NCarGUrAcj8azGet9zslLwALo2bYD1zBnu0kTln+TLcb+pUqE7u9m3gyJK7by+m0ND8edui0JnFT/ie/e8k839f5n3Dlk5OdlrmG1pdj7+fb6nzl6/ZQP++PVBK0bJ5E9LS0olPSGLtxq10bNcafz9f/P186diuNWs3biU+IYmMjExaNm+CUor+fXuwbPV6p+V1adAEe/QZ7LHGNrasWYZb+8Lb2Lp7G1iMbWw9uBdTsLGNTTVqg9lsNHIAsrPAkoPy9QNrLvazpwHI3b4Ft463OC0zQESftpz6YTUAyVGHcfXzwj0soFi95KjD5MQlFyvPOpVA2r6TeQ32kkTefiNxy7Zjy7KUO2+1vm058aORNynqMG5+XniUkDcp6jDZJeSt80h3jnyxhNwUY3/OSUwFIP1oDOnHjN617NhkchJScQ8uff8rK9cmjbGdPpt/vvhnGe6dCh/btphYrEeKny/QGuXuBi4u4OoKLi7Yk85BTo7RyAGwWsk9eKjQ8eoMNfq05ej8NQAkRh3Bzd+7xO2cGHWkxO2MBldfTwDc/LzIij0HwLndJ8iKNeqnHDiN2cMNk9tV008gLqLMDR2lVCel1JOOv0OVUnWcGSQwIojEswl504kxiQSFB5VY97npQ3lrwXvcPTS/56FO87oEVwth27Ktheqe2HucG3q1w2Q2EVozjLrN6xFcrfyNB5ewYKwx8XnT1tgEXMODC9cJD8Ya7ahjs2NLy8AU4EfO/qP4dOsAZhMu1cNxb9YAl4jCB7zJ1xvvbjeSuX57ubMCmMNCsMXG5U3b4hIwl/Ek41KzBva0dIKnvUbYV7Pxf/FZMJkw+fuh09LBZnesMx5zqHMaZgDmkBDs8fmZ7fHxmEJKX7/Hrf2wbNp48fVWq4Z7124E/nc2/lPfxly9ulPylkVsfCIRYfmvITwshNj4BGLjE4gIy///CA/NLw8vWD80hNj4RKflUUEh2BIKbOPEeEzBpW9j9579yI0ytrG5Wk10Rjo+Yybj9+6neD4xGEwmdGoKmMyY6zUCwO2mW4xLW07kERlE9tn87ZAVnYRHZMnni8tVfcBNnPl1nVPW5RkRRGaBvJnRSXhGlv2DnG+9CHzqRtLtt1fp/udrhHdrUaxOYKu6mNxcSD8eV8IaLo05NARbXOFjr6zHdu6eveREbSP8t58I/20+lk2bsZ44WaiO8vHG/eaOWLZGlTtrQV4RgYW389kkvCLKvp13vvszde6+mbu2fEjX/41my/ivitWpeVs7knYfx25x3iV6Z9BaVdijqilTQ0cp9Sow5v/Yu+/wKKq+j8Ofsy2b3iud0GsAIx2BhKoiiCAKSLNgoQmIgCCKiCBiQ0EUkEdFpYiK9N57CL2EXtJ7L7s77x8bUkgCgSwJ4T23Vy6zM2dmvzvMzp75zZkNcHuggxb49S7tXxdCHBFCWOCaS37fjprL+C6j+LDPROr416Pd8+0RQjDwg6H88knB8Szbl28hJiyGmWu+YNDUYVwIOofJWLajthL+2oghIorKK77FY+Jw0oPPoOQ9K1Kr8J7zPvG//mOuGJUxoVFj5deQ+G8WEDnkTdQVvLF5uktZx8rHKrAT2lq1SV3+x70ba7UoWZnEvfUG6WvXYD/+/Ycf8DGge6oTGt/apP+dvY3VajR1G5H68/ckjn8DtacPug5dAUiZ+zE2Q9/BYfYClLRUi4/PedisPJywr1uJqO0lv2xlCUKtxr66Jzt6f8KBN+fxxOevonWwyZmv93Ci+bdvcnj0wjL/WwDqCj5oqlQh8vk+RPbqg65pE7SNGuZpoMJp2hRSVvxlrhg9Qqr2bMml5btY/cRIdgz8nFbfvgl5xsM51qpAk8n9OPTe4jJMKd2v4tbeegFNgCAARVFChRBF1kcVRVkILAQQQhT5ruv8SjcC+nUG4NKJkHyVFlcvV2IjYgssE5c9LT0lnb3/7MLXryaHNx+iUu3KTP3jEwCc3J0Yv2gynw+bweWTl/jf9Nyd8uO/PiPsyq1ivuyiGSJj8lVhNJ5uZEXkP9M2RMSg8XbHEBENahVqe1tM8eaSc9RnC3PaVVo2l6yruZk8PxpF5rVQ4v/3d4lz3maMjEbtmXtWrfZwwxgVdZcl8i4bRdaFSzkHpfSde9E1qEvqmvUIeztQq8BoQu3hjjEq+h5ru4/M0dGo3HMzq9zdMUUXXL+2aTNsXx5I3LsjISurwPw7maKiyNhtHjiZsWd3qXZ0PN1dCY/MfQ0RkdF4urvh6e7G4WO5H6oRUdH4N2lkruDkbR8Vjad7/sphSSix0ajzVFtUru6YYgpuY02jZli/MJDED0aCwbyNTTFRGK9eNF/2AjIP7kFTux6ZW9dhOH+apMkjzMs2fgKVT6USZ606pBOV+3cEID74Mnqf3O1g7e1CeljB48WD8unRgvB1h1EMD95B8x3cier9OwAQe/wyNj6u3D5C2Hi7kBYWV+x1pYXFEht0EcVgJPVGFEmXw7Cr5kXc8cto7Kxp8+s4Tn62gtigiw+cNy9jVDRqj/zvveK+t/Xt2pJ1+gxKWjoAGQcOoWtQn6wT5iEEju+Nw3jjFqkrLHMDQK3Bgfje3s7B5u18m42PC6nhxd/Ovi89xfb+swGIPnoRlZUWKxd7MmISsfZ2od2i0ewftYDkayWvmlma/GbkohX30lWmYh69qwAIIWwt8eSb/reeCd3HMKH7GA5vOki73u0BqNmkFqlJKcRH5t9BVWoV9s7m/pVao6ZpwBPcOH+dtKRUXmvyCiPavM6INq8TcuxCTidHp9dhZW0FQMM2jTEZjNwKuVni7Oknz6Ot4oOmgidoNTh0f4qU7fnvdkjefgCH5wIBsO/SltQD5nE5Qm+FyM5k06oJitGYM4jZddQgVPa2RM0seMdOSWSePYemUgXU3l6g0WDdqSNpu4o31iPzzHmEvR0qJ0fAPC4nK3sQc8bRYKw7msdf2DzdmbRdey2W2XDuHJoKFVF5mTNbdehIxr7869fUqInDmLEkTJlY7LE2GXv3oPNrCoC2sR/GmyXfH4qrfZsW/LthK4qicPzUWezsbHF3c6F182bsOxREQmISCYlJ7DsUROvmzXB3c8HW1objp86iKAr/bthKhzYtLJbHEHIOlXdFVB7mbaxr05Gsw/m3sbpaTWzfHEvSpxNREuJzphsvnkPY2CEczPuFtmFTjDeuAiAcncyNNFqsn3+ZjI3/lDjr1SWb2RU4kV2BEwnfcIRKfdsC4NS0BllJqYWOxXlQFXqV/LLVpZ83s7nTJDZ3msSt9Ueo0sec16VpDbKS0gofI1KEWxuO4N6qLgA6Fzvsq3uTcj0SoVXTavForq3Yw621lhvUm3XuHOq8x4vAjmTsLd72MEZEomvS2HwCpFaj82uMIfsGArvXhiJsbUn8Zp7Fsl74eQvrO01mfafJ3NhwlOovmMeYuTb1JTMx9b62c+qtGLza1AfAoYYPaistGTGJaB1s6PC/sQR/+idRh0Msll0qHcWt6CwXQvwAOAkhXgOGAha9L/DYtqM06dCMr3ctIDP79vLbZq37kgndx6DVaZn0yzTUGjUqtYqTe46z9ffNd12vo5sTk/73IYpiIjY8lnljvrJMYKOJqE++p+JPM0ClIvGvTWRevIbriIGknwohZfsBElduwGvWe1TdsBhTQhJhY2cCoHZxouJPM1BMJgyRMYRP+BwwV4Vch79ExqXrVF5lPhDEL1tD4soNFskbP+db3L6ZhVCpSVmzHsOVqzi8PpjMsxdI370Pbd3auM7+GJW9Hfq2LXF4bTARLw0Fk4mEbxbgNm8OQggyz10g5e+1ACTMW4jrJ1NwfGMomRcukvLv+pJnvc1kJOnbr3CaNQehUpG2fh3Ga1exHTyUrPPnyNy/D7vXhyOsrXGYar4LyBQZScKUSQA4ffUtmkqVEdbWuP6xgqQ5s8k8cpjU35fhMOkDbHr3QUlPI+mL2RaLPP7Dzzh87ATx8YkE9BzAW8MGYsi+3f7FXk/TrqU/u/cfplvfoVjr9UyfNAYARwd73hj8Ev1eHQXA8CEv5wxq/mDs27m3l7fwt9wdVwAmI6k/foX9h3PMt5dvXYfxxlWsXxqK4eI5sg7vw2bQcITeGrvx2ds4KpLkmZPAZCJ16XzsP/oShMB46TwZm/8DQN+zH7onWoEQpG/4B8PJY5bLDERuOYZHgB8dD3yFMS2D4NE/5Mxrt2Vmzp1Tdae8TIVerVBb6wgMmsf1Zdu5MGcVjn7V8V/8LlonWzw7NaX2+D7seGo8ANaV3ND7uBKz76zF8oZvDcY7wI9u++diTMvk8JjcvJ02f8rmTuZ9tuEHL1E5O+/TR7/lyrLtnPniLyK2n8DrqYZ02TkbxWjixPRlZMYlU7l3a9xb1MHK2Z6qfdsBcGj0DyScvlZojmIzmkic+w0uc2eDSkXaWvPxwm7YELLOnSdj7z60dWrj/Ol0hL0d+tYtsRs2hOiBQ0jfsRNdsya4L12MoihkHDxMxt79qNzdsB80EMPVa7gtNle0U1atJu0/y92NF7o1mAoBjemx7wuMaZnsH5NbOe+2eQbrO00GoMkH/ajasxUaax29jnzDxd93cPKLvzj60W+0mPMqdV7rigLsz/53qj2kE/bVPGnwbi8avNsLgG39ZuUMCn8UyL9eXjRxr9ushfkLOyoCdYDOgAA2Kopy9x5G7vJK38rPlTRnqVl+/R/O13m0xp/cS+1zG7nxZIeyjnFfKh3aTkTHdmUdo9g8t+0iM6rgVxo8ynTuvsT0LD/bGMD1713869mvrGMUW4+IP1ju9XJZx7gvfcOXEdq6fVnHKDafvTv41bt/Wce4LwPCfkMp5VG7Z2t2L7WuTt2QdeXqOtk9KzqKoihCiHWKojQEitW5kSRJkiRJehQU99JVkBDCX1GUww81jSRJkiRJ900ORi5acTs6zYH+QohrQArmy1eKoigFv8xBkiRJkiTpEVHcjk75GrQiSZIkSf+PyD8BUbRidXQURbkGIITwAPQPNZEkSZIkSZKFFKujI4ToAXwB+ACRQBXgLFD/4UWTJEmSJKk4yuOfZigtxf3CwOlAC+CCoijVgADgwN0XkSRJkiRJKlvF7ehkKYoSA6iEECpFUbYDTzzEXJIkSZIkFZOilN5PeVPcwcjxQgg7YBfwmxAiEvPdV5IkSZIkSY+su3Z0hBCVFUW5DjwHpAFjgP6AI/Dxw48nSZIkSdK9yLuuinavis7fQFNFUVKEEKsURekNLH34sSRJkiRJkkruXh2dvF3E6g8ziCRJkiRJD0bedVW0ew1GVor4XZIkSZIk6ZF3r4pOYyFEIubKjnX275D7JyAcHmo6SZIkSZLuqTzeDVVa7lrRURRFrSiKg6Io9oqiaLJ/v/1YdnIkSZIkScpHCNFVCHFeCHFRCPF+IfOthBB/Zs8/KISommfexOzp54UQFvnzU8W9vVySJEmSpEfUo3LXlRBCDXwHdAJuAoeFEP8qinImT7NhQJyiKDWEEP2AWcCLQoh6QD/Mf3XBB9gihKilKIqxRJmUh1zvEkLIgpokSZL0/4pSyqODj1TsWWqftU/c/LvI1yaEaAlMUxSlS/bjiQCKoszM02Zjdpv9QggNEA64A+/nbZu3XUnyFvebkSVJkiRJekQpiii1HyHE60KII3l+Xs8TpQJwI8/jm9nTKKyNoigGIAFwLeay961ULl3Nr9i/NJ7GIt68+RvHqzxT1jHuS+Nr/7Hd44WyjnFfOkSu5IB3r7KOUWwtwlYT07NdWce4L65/7yIz6lJZx7gvOndfVnm+VNYxiq13xO/Ucfcv6xj35VzUYc7V7lrWMYqtzvkNbPLoW9Yx7kvnyOVlHeGhUhRlIbCwrHMUl6zoSJIkSZJkKbeASnkeV8yeVmib7EtXjkBMMZe9b7KjI0mSJEnlnEkRpfZzD4eBmkKIakIIHebBxf/e0eZfYFD27y8A2xTzgOF/gX7Zd2VVA2oCh0q6beRdV5IkSZIkWYSiKAYhxDvARkANLFYU5bQQ4mPgiKIo/wKLgF+EEBeBWMydIbLbLQfOAAbg7ZLecQWyoyNJkiRJ5d6jdHuzoijrgHV3TJua5/d0oE8Ry84AZlgyj7x0JUmSJEnSY0tWdCRJkiSpnHtUvjDwUSQrOpIkSZIkPbZkRUeSJEmSyrlS/iLmckVWdCRJkiRJemzJio4kSZIklXOmsg7wCJMVHUmSJEmSHluyoiNJkiRJ5ZyCHKNTFFnRkSRJkiTpsSUrOpIkSZJUzpkepa9GfsTIio4kSZIkSY8tWdGRJEmSpHLOJMfoFOmR6ui0/mgglTv6YUjLYPu7C4k+dTXffI1eR6cFI3Go4oFiNHFtyzEOfvZnvjbVuvnTZeEoVj09hagTV/Dwq067z4aZZwo48uVqrm44YpG8dk81pcLU10CtIvbPzUTNX5lvvtBpqDT3Xawb+GKMT+LaO7PJuhmJdeOaVJz5TnYjQcRXy0jceACttxuV5o5B4+YECsT8voGYJWsskvW2GjOG4BrQFGNaBudGfkfyySsFX1ej6tT55m3Ueh0xW4O4OHlJzrwKw7pSYUhXFKOJmC1BXJ7+KwCVR/bE++UAFKOJkMmLidtx3GKZq0wfhlPHppjSMrg0Zh6pJy8XaGPTsDq+X41ApdcRvy2Ia1MWAeDyTEsqjH0R65oVOd19AiknLgGgcbaj5sLx2PrVIGr5dq5N/skiWbVNnsRm2AhQqcjYspb0v5blm6/v0RerwKdRjEaUxHhS5s3CFBUBgMrNA9u330Pl5gGKQtL0CZiiwtE0bILNoLdAq8F46QIp82aDqcR/0DfHB5/OZdfeQ7g4O/H3rwsKzFcUhZlfLWD3/sPo9VbMmDyWerVrAPDPus38sPQPAN4Y1I/nuncC4PS5ED6YMZf0jAzatvRn4ujhCGHZA3GjT17BK8APY1omR0ctIP7k1QJt6r3fl8p92qJzsuVf36EF5vs87U+LRWPY1mUy8cevIDRqms59DaeGVRFqNddX7ObCt/9aJO+kGWNpF9iK9LR0Jo34mDMnz+ebb2Nrw69rFuY89vL2YM3K9cyc8iXeFTyZ+e2H2Dvao1armDv9O3Zt3UfDJvX46ItJAAgh+O7zH9mybodF8tq0aYbn5OGgUpGwcgOxP67IN19otXjNGou+fk2M8YmEvjsTw61I0Kjx+mQ0+nq+oFaT+M9WYhcuR+i0VPr1c4ROi1CrSdq0h5hvf7VI1rxqzxiMW0ATjGkZnB45n6RCjnH2japR/5u3UOt1RG89xvnJPwNgV78KdT9/DbWVFsVg5Oz7i0g8dgn3rk/gO6EvmBQUg5HzU5YSf+h8gfVKj6ZHpqNTuUNjHKt58XvbsXg08aXtp4NZ3WNagXbHf1hL6P6zqLRqnv1jEpXaN+LGjhMAaG31NBzWhYigizntY8/dZNXTU1CMJmw8nOizcQbXNgehGEv4rQMqFRU+Hs6VAVPICo+hxr9zSdx8kIyLN3KauPTtjDEhmfPt38Dx2bZ4vz+Y6+/MJv38dUKeHQNGExp3Z2qt/4YzWw6hGIyEfbKYtNOXUNlaU3PNlyTvDs63zpJwCWiCdTVvDrYYgUOzmtSa/RpB3SYVaFdr9mtcGLuAxKMhNFw2CZeOfsRuC8apdX3cuvpzuOM4lEwDWjcHAGxqVcSjZ2sOtRuDlZcLjVdM4WDLUWAq+Tc7OHZsir6aN8dbv41d01pUm/k6p595v0C7ap+9wZXx80kOukDtXz/AsUMTErYfI/XcdUJenU21WcPztTelZ3Hj89+xqV0Z6zqVS5wTAJUKm9dHkzRtLKaYKBxm/0Dmob2Ybl7LaWK4HEL6uNchMwOrLs9h/cpwUr74CADbUZNIW/krhuNHQG9t3n5CYDtyEkkfjsEUehPrl4ai69CFzK3rikpx33p278TLvXswafqcQufv3n+Y6zdDWffnIk6cPsf0OfP4/cevSEhMYv6SZfy56BsAXhw2kvZtWuDoYM/0OfOYNmEkjerX4c1xU9lz4AhtW/pbLLNngB921b3Y1PJdnJvWwG/WUHZ0n1qgXdimIC4v3kTn/XMLzNPY6qnxaldij4bkTKvwbHNUOi1bO7yP2lpH4K7Pufn3PlJvRJcob7uAVlSpXomuzXvTuFkDps6eQL9u+TteqSmpPN9xQM7jlZuXsnntDgCGjxnKhn+38sfPq/CtVY0fln1J4BM9CTl3iT6dBmE0GnH3cGX19t/YvnE3RmMJO8IqFZ5T3+bm0ElkRURTZcXXJG87SOal6zlNHF/ojCkxmStdhmHf/Sncxw4l7N3PsO/aFqHVcrXHWwi9FdXW/kDi2h0YbkVyY/D7KKnpoFFT+bc5pOw6QvrxcyXLmodbgB821bzY22IUjs1qUnf2MA51+6BAu7qzX+Xs2IUkHA2hybL3ce3oR8y2YGpN7c/lOSuJ2RaMW4AfNaf05+jzHxO76yRR2SfIdvUq02jhaPa1eddiuaWH665jdIQQNYQQrQuZ3loI4WvJIFU7N+PCqj0ARB67hJWDLTYeTvnaGNIzCd1/FgBTlpHok1ex83bJme8/7gWCv/8PY0ZWvmVud2rUVloUCw3YsvGrSea1MDJvRKBkGYhfswuHzs3ztXHo3Jy4VVsBSFi3F7tWjQFQ0jMgO5Ow0qFkhzJExZF22lxxMKWkkX7pBlovV8sEBty6+hOxYicAiUdD0DjYortjG+s8nNDYWZOYffCPWLETt25PAuAzqDPXv/0bJdMAQFZ0YvZ6nyDy770omQbSr0eSdiUch6Y1LJLZucuTRK/cAUBy0AXUjrZoPZzztdF6OKO2tyY56AIA0St34NzV/G+RfvEW6ZdCC6zXlJZB8qFzmPLsKyWlqVkXU9gtTBFhYDCQuWcbuifb5GtjOHUMMjPMv184g8rVHQBVxSqgVps7OQDpaZCZgbB3AEMWptCbAGQFH0HX8imLZQZ4wq8hjg72Rc7fvucAPboGIISgcYO6JCUlExUdy96DR2np3wRHB3scHexp6d+EvQePEhUdS0pKKo0b1EUIQY+uAWzbvd+imX26NOP68t0AxAVdROtgg/6Offn2vPTI+ELXUW9CHy58tybf8QJFQWNjhVCrUOt1mDINZCWllThvx27t+Ge5uXN6/OgpHBztcfco+r1dtXplXNxcOHLgmDkWCnb2tgDYO9gRGWHueKWnZeR0anR6KxQsc4DTN6pF1vVQsm6GQ5aBpHU7sQtoka+NXUBLEv7eAkDSxt3YtPQzz1AUVDZ6UKsQeh1KVham5FTzrNR0AIRGg9BosNgBOZt7V3/CVuwCIOEex7iE7GNc2IpdeHTzvx0djb01ABoHGzIi4gAwpmbkLK+2sbJ0bItQEKX2U97cazDyV0BiIdMTs+dZjK2XM8mhMTmPk8NisfVyLrK9zsGGKoFNuLn3NABuDapi5+PC9W3BBdp6+PnSd8tn9N08k12TlpS8mgNoPV3JCs09y8sKi0Hr6Vp0G6MJY1IKamdzFcTarxa1Nn1HrY3fcuuD73M6PjnLVvTAup4vqcGWK49aebuQcSt3G2eExWCVp6OY0yYsT5vQ3DY2vj44Nq9L0/Wf4rf6I+z9zH1dKy/XO9Ybi5VX/vU+KJ2XCxl5tnNmaAy6O9at83IhM0/mwtqUBuHihjE6MuexKSYKlatbke2tAruTFXQQALVPJZSUZOwmTMfhi5+wHmS+ZKAkJoBKjdq3NgC6Vk+ZL22VooioGLw8cl+Hp4cbEVHRRERF4+XhnjvdPXe6Z9727m5ERMVgSXpvZ9JCY3Mep4XFovcu+nhxJ6eGVbH2cSV8S3C+6bf+O4QhNYPuJ76n69FvCJm/lqz4lBLn9fTyIDw0IudxeGgkHt5F/zt279WJ9f9sznn83ewfebZ3V7YHr2HBsi/5ZGJu9a1R0/qs2fUH/+xcxkfjZ5W8mgNoPN3ICovKeWwIj0Zzx/FN4+GKISz3+GZKSkXt5EDSxj2YUtPx3b0M323/I3bxX5gSks3tVCqqrJ5Hjb2/k7LvGOknLHv5x8rbmfQ8x6L0sBj0dxzj9N4upIfl7jvpobFYZe87F6YspebUAbQN+o6aHw7k4ozfc9q5d/On1Z65NPn1fc6MmW/R3NLDda+OjqeiKCfvnJg9rWpRCwkhXhdCHBFCWGYwzJ3rV6sInPc2J5dsJOl6FAhBq6n92T99WaHtI4MvsTzwfVY9M5Wmbz+L2kr7MGLdl7TgC1zo/DYXe7yLx5t9EHkyqWz0VJk/kdCPf8SUXPKzSUsRGhUaZzuCuk3i0se/UO9HWbp9ULqnOqHxrU363+bxLajVaOo2IvXn70kc/wZqTx90HboCkDL3Y2yGvoPD7AUoaakWHZ/z/5IQNPxoACc/Kjg+xLmJL4rRxLrGb7PxydHUHN4dm8ql27EE6NazE2v/2pTzuPvzXVj953908HuW4S+PYdZ303LGPJ0IOs2z7frRt/NgXhs5CJ2VrtTz5mXdsDaYTFxq15/LgYNxGfI82ope5pkmE9d6vcOl9gOxblQLXc0qZZr1ThUHd+LC1KXsbvo2F6Yupd6XuZe8o9YfZl+bdwkePAffCS+WYcrCmUrxp7y51xgdp7vMsy5qhqIoC4GFAEKIIot89QcFUvelDgBEHb+MnU/uGYOdtwsp4XGFLvfUrGEkXAnn5KKNAOjs9DjXrkiP5ZPNwdwd6br4XTYMnUvUidyBaPEXQ8lKSceldsV80x9EVkQMWp/cs1attytZETGFtskKjwG1CrW9Lca4/AWyjEs3MaWmoa9VhbSTF0GjpsqCicT/vYPEjSUv9/sM6YLPgEAAEoMvYlUhdxtbebuSkefMBrKrMd552vjktskIjSV6rbkCkXTsIphMaF0dyAiPuWO9LmSE51/v/fAc3BX3/uZBrSnBF7HycSP7fBCdjyuZd6w7MzwWXZ7MhbUpDUpsNOo81RaVqzummIJjOzSNmmH9wkASPxgJBvNlE1NMFMarF82XvYDMg3vQ1K5H5tZ1GM6fJmnyCPOyjZ9A5VOpFF5NLk93V8Ijc19HRGQ0nu5ueLq7cfjYidzpUdH4N2lkruDkbR8Vjad7yS/BVh/Siar9zceLuODLWPvknqlbe7uQHlb48eJOGjs9DrUr0favKQDo3R1puXQc+wfNodLzrYjYfhzFYCQjOpGYwxdw9qtG6vXIe6y1oJeHvsALA3oCcOrYGbx8PHPmefl4EBlW+Dpr16+JRqPhzIncsSsvvNyD1/qNBCD4yEms9FY4uzoRG537mi+HXCU1JY2adXw5ffzsfefNyxARjdY7t1qn8XLDcMfxzRAZg8bbDUNENKhVqOxtMMYnYv9Me1J2HwGDEWNsAmlBZ9A3qGm+DJbNlJRC6sET2LZ9gsyQa5RExSGdqTggAICE4Evo8xyL9N6u+ao3AOlhsfmqPHofFzKy9x3vvk/lDEyO+PcA9ea+UeD54g+cxbqKB1oXe7Jik0qUXSod96roHBFCvHbnRCHEq8DRkj756aVbWNl1Miu7TubKxqPU6m0ez+DRxJfMpFRSC7m27j/+BXT21uydlns2lpmUxtLGb/JbqzH81moMkccu5XRy7Cu5I9Tml2lXwRWnGj4k3YgqsN77lXo8BF1VH7QVPRFaDU7PtiNx86F8bRI3H8S5t/kN6Ni9Ncn7sgdNV/SE7EzaCu5Y+VYk86b5oFdp1kjSL94getE/Jc4IELpkI0cCxnMkYDzR6w/j2cc8vsOhWU0MSalk3rGNMyPjMSSn4dCsJgCefZ4iesNhAKLXH8KpdQMArKt7I7QasmISid54BI+erRE6DfrKHlhX9yYxz4Dw+xXx8wZOdRrLqU5jidtwCLcX2gNg17QWxsRUsiLzf6BlRcZhTErDrmktANxeaE/cxkN3rvahM4ScQ+VdEZWHF2g06Np0JOvw3nxt1NVqYvvmWJI+nYiSEJ8z3XjxHMLGDuHgCIC2YVOMN64CIBydzI00Wqyff5mMjZbZN4qrfZsW/LthK4qicPzUWezsbHF3c6F182bsOxREQmISCYlJ7DsUROvmzXB3c8HW1objp86iKAr/bthKhzYt7v1E93B5yWa2BU5iW+AkwjYcoXLftgA4N61BVlJakWNx7mRISmNt/TfY6D+Kjf6jiA26yP5Bc4g/foW0WzF4tKkPmMdiuDSrQVJIwTFexbFs8Uqe7ziA5zsOYOv6nTzXtzsAjZs1ICkxmajIwi/nPd2rM2tXb8w3LfRWOC3amseRVK9ZFSsrHbHRcVSo7INarQbAp6IX1WtW4daNB8ubV/rJC2ir+KCt4AlaDfbdnyJ524F8bZK3HcCxp/kkyr5LW1IPmO+0NIRFYdPCPB5RWFuhb1yHzMs3UDs7osoeZySsdNi0akLm5ZLfaHFzySYOBEzgQMAEotYfxrtPOwAc73GMc8w+xnn3aUdU9jEuIzwO51b1AHBp24DUy+bOmXXV3E6qfcNqqHTaR66TI8foFO1eFZ3RwGohRH9yOzZPADqglyWDXN8WTOWOjXlpzxcY0jLZMTb3NssXNsxgZdfJ2Hq50GxkT+JCbvHC+k8AOPXzZs79saPI9Xr516LJW89iMhhRTAq7J/9Melxyke2LzWgidOoCqv/vI1CriFu+hYyQ63iO6U/ayRAStxwidvlmKs19l9o7fsAYn8z1EbMBsPWvh8ebL6AYDGBSuDVlAca4RGyeqIdz746knb1CzXVfAxA++38k7ShxnxKA2C1BuAY0ofnBbzGmZXJ+1Hc5857Y+jlHAsYDEDLhR+p88zYqvY7YrcHEbjUPiAz7fTt1vnoT/51fYMo0cG6kefnU8zeJ/Hc/T+7+EsVgIuT9nyxyxxVA/NajOAU0pfG+7zGlZXB5zLyceQ02f8GpTmMBuDpxIdVv316+PYiEbUEAOHdtTtVPXkXj6kDtXyaTcvoK51+eDoDfwQWo7awROg0uXZpz7qWPSAu5+eBhTUZSf/wK+w/nmG8v37oO442rWL80FMPFc2Qd3ofNoOEIvTV24813WpmiIkmeOQlMJlKXzsf+oy9BCIyXzpOx+T8A9D37oXuiFQhB+oZ/MJw89uAZCzH+w884fOwE8fGJBPQcwFvDBmIwmAecv9jradq19Gf3/sN06zsUa72e6ZPGAODoYM8bg1+i36ujABg+5OWcQc0fjH079/byFv4WveMKIHxLMJ4BfnQ+8CXGtAyOjv4hZ17HLZ+yLdB8N2GDKS9RqVcr1NY6ugV9y9VlOzg7Z1WR6720eBPNvh5O4M7ZIODaH7tIPFvyD+OdW/bSLrAVGw/9RXpqOpNGTc+Z99e2X/PdbdX1uUDeeGl0vuVnf/g1H8+dxKDhL6MoChNHfgxAs+aNeW3EILIMBhSTiY8nzCY+NqHEeTGaiJw+n4qLPgGVmoRVm8i8eB3XEQNJP3WBlO0HSVi5Ee/Z46m2cRHGhCTC3v0MgLhla/D+9F2qrlkAQpDw1yYyLlzFqlZVvD4bZz7xFIKkDbtJ2WHZE5LoLcdwC2hC64NfY0zL5Myo3LE0LbbO4kDABADOTVhE/W/eQqXXEr01mOitwQCcHfsDtT8ZjNCoMWVkcmac+XPI85nmePdph2IwYkzP5OTrX1k0t/RwCaUYw8eFEB2ABtkPTyuKsq3YTyCEMr9i/weMV/revPkbx6s8U9Yx7kvja/+x3eOFso5xXzpEruSAt0X7yg9Vi7DVxPRsV9Yx7ovr37vIjLpU1jHui87dl1WeL5V1jGLrHfE7ddwt24l72M5FHeZc7a5lHaPY6pzfwCaPvmUd4750jlyOoiilWvrY4Nmv1O4F6xrxR7kq6xTre3QURdkObH/IWSRJkiRJkizqkfnCQEmSJEmSHkx5vBuqtMg/6ilJkiRJ0mNLVnQkSZIkqZwrj3dDlRZZ0ZEkSZIk6bElKzqSJEmSVM6ZZEGnSLKiI0mSJEnSY0tWdCRJkiSpnDPJMTpFkhUdSZIkSZIeW7KjI0mSJEnSY0teupIkSZKkcq7U/v5DOSQrOpIkSZIkPbZkRUeSJEmSyjn5JyCKJis6kiRJkiQ9tmRFR5IkSZLKOZOQt5cXRVZ0JEmSJEl6bMmKjiRJkiSVc/Kuq6IJRXm4m0cIIbe/JEmS9P+Koiilei1phXf/Uvus7RP2W7m6TlYqFZ3IwHal8TQW4bFlFwe8e5V1jPvSImw1e72eL+sY96V1+F9s8uhb1jGKrXPkcv717FfWMe5Lj4g/WOX5UlnHuC+9I34nM+pSWccoNp27L0Oq9C7rGPdlybVVnK3ZraxjFFvdkPVsKUfHCoDAyOWl/pzyrquiyTE6kiRJkiQ9tuQYHUmSJEkq50zl6mJS6ZIVHUmSJEmSHluyoiNJkiRJ5ZwJWdIpiqzoSJIkSZL02JIVHUmSJEkq5+T3uBRNVnQkSZIkSXpsyY6OJEmSJEmPLXnpSpIkSZLKOXl7edFkRUeSJEmSpMeWrOhIkiRJUjkn/wRE0WRFR5IkSZKkx5as6EiSJElSOSdvLy+arOhIkiRJkvTYkhUdSZIkSSrn5F1XRZMVHUmSJEmSHluyoiNJkiRJ5Zy866poj0xHR/vEk9i9NQKhUpG2fi1pfy7LN9+6d1/03Z4GoxFTQjxJc2ZhioxA7VsD+5HvImxswGQiddkvZOzcDoD+uV7Y9HoBdYWKRPfugZKYYPHcVaYPw6ljU0xpGVwaM4/Uk5cLtLFpWB3fr0ag0uuI3xbEtSmLAHB5piUVxr6Idc2KnO4+gZQTl/Itp6vgRqMdX3Pzi+WEL/jHInmrTR+KU0BTTGmZXBz9LSknrxRoY9uoOjW+esecd2sQV6YsNr/WKa/g3PkJlEwD6dfCuTh6HsbEVPNrrFsF39lvoLa3QTGZONFtAkpGlkUy154xGLeAJhjTMjg9cj5JhWS2b1SN+t+8hVqvI3rrMc5P/hkAu/pVqPv5a6ittCgGI2ffX0TisUvY1PCh/tdv4tCwGhdn/sG1+f9ZJCtA/U8G4RnghzEtk+BR80k4ebVAmzrv96Vin3ZonWxZ7zskZ7pLizo0+PgV7OtVJmj4N4T9dwgA19b1qP/RwJx2djV8CBr+LeEbjlgkc6NPXsErO/PRUQuILyRzvff7UrlPW3ROtvzrO7TAfJ+n/WmxaAzbukwm/vgVhEZN07mv4dSwKkKt5vqK3Vz49t8SZ/3g07ns2nsIF2cn/v51QYH5iqIw86sF7N5/GL3eihmTx1Kvdg0A/lm3mR+W/gHAG4P68Vz3TgCcPhfCBzPmkp6RQduW/kwcPRwhLHst4OUPh9KwQxMy0zJZNG4e108X3I9vG/HjBNwrezK1y7sAVKpbhYEzXkdvoyf6ZhQLR39NenIaaq2GQZ++TtWGviiKwrKPlnD+wGmL5LVt2wyPyW8g1CriV2wkduGKfPOFVoP35+PQ16+BMT6J0NEzyboVicOz7XF5tXdOO6va1bjaayQZZ3OPjRXmT0VXyYsrz7xlkax51ZoxGNfs48XZuxwv6n3zFiq9jpitx7iQfbxosHAUNr4+AGgcbDAkpnIoYELua6ngSovdc7ny+QquW/CYIT1cj8alK5UK+xGjSZj0HrGvDkLfIQB15Sr5mhguhhD39uvEvTGUjF07sX1tuHlGejpJs2cQ99pgEiaNx/bNEQhbO/Myp04RP2EsxvCwhxLbsWNT9NW8Od76ba68t4BqM18vtF21z97gyvj5HG/9Nvpq3jh2aAJA6rnrhLw6m6QDZwpdrsqHQ4jfdsxieZ06NkVf3Ztjrd7h0vj5VP+s8LzVP3udS+Pmc6zVO+ire+PU0Zw3ftdxgtuP5njAu6RfCqXiiOfNC6hV1Jw3iksTfiC4/WhO956KkmW0SGa3AD9sqnmxt8Uozo77kbqzhxXaru7sVzk7diF7W4zCppoXrh39AKg1tT+X56zkQMAELs1eTs0p/QHIik/m/OSfuTp/jUVy3uYR4IdddS+2tRzD8XE/0nBW4XnDNwWxu9sHBaan3Yrm2KgF3Fq9N9/0mL1n2BU4kV2BE9n/wicY0zKJ2nnCIpk9szNvavkuQeN+wm9WwU4MQNimIHZ0m1LoPI2tnhqvdiX2aEjOtArPNkel07K1w/ts7zKZaq8EYFPJrcR5e3bvxIK5nxQ5f/f+w1y/Gcq6Pxcx7b2RTJ8zD4CExCTmL1nG7z9+xe8/fsX8JctISEwCYPqceUybMJJ1fy7i+s1Q9hywTAfytobtm+BZzZuJ7UewdNICXplR+HsPoGmX5mSkpuebNvizN1k56zemdh1L0MZDdHv9OQCe6hcIwNSuY5kz4GNenPyKZTpoKhWeH77Fzdemcrn7cByeeQqdb6V8TRz7dMGYkMzlTq8S+/Nq3Meb95vENTu4+twIrj43grDxX5B1MyJfJ8eucytMd7w+S3EN8MO6mhf7W4zi3LgfqV3E8aJ29vFif4tRWOc5Xpx6/WsOBUzgUMAEItceImrtoXzL1froFWK2Bj+U7CVlKsWf8qZYHR0hhI0QolH2j5WlQ2hq18UYegtTeBgYDKTv2IauVZt8bbKOH4OMDAAMZ8+gdncHwHjrJsZbtwAwxcSgxMehcnI0t7sUgiki3NJxczh3eZLolTsASA66gNrRFq2Hc742Wg9n1PbWJAddACB65Q6cuzYHIP3iLdIvhRa+7q5Pkn4jgrQLNyyW16WrP1ErdmbnDUHjYIvWw+mOvE6o7W1IDjJ/YEWt2IlL1ycBSNh5HIzm3Twp6AI6H1cAnJ7yI/XsVVLPXAPAEJcMJsu8Hdy7+hO2Ypf5+Y+aM+vuyKzzcEJjZ01C9ods2IpdeHTzB0BRQGNvDZjP0DIi4gDIik4kMfiSxTpkt3l1acaN5bsBiA+6iNbBBqs78t6elxEZX2B62o1oks5eB1PRN4t6P9OcyG3BGNMyLZLZp0szrmdnjsvOrC8kc1zQRdILyQxQb0IfLny3BmPeKp6ioLGxQqhVqPU6TJkGspLSSpz3Cb+GODrYFzl/+54D9OgagBCCxg3qkpSUTFR0LHsPHqWlfxMcHexxdLCnpX8T9h48SlR0LCkpqTRuUBchBD26BrBt9/4S58yrSWd/9v21A4DLx0KwsbfB0d2pQDsrGz1dXn2G/75dlW+6ZzVvLhw0nxCd3nOcZt3MxxCfmhU5u+8UAEkxiaQmplK1kW+J8+ob1SLzWihZN8Ihy0Di2l3YBbbM18YuoAUJq7eYn3vDHmxaNi6wHvtnniJx7c6cx8JGj8uQXsR8/3uJMxbGvas/4dnHi8R7HC8Ss48X4St24Z59vMjLs0cLwvOccLh1e4K065GknLfcMfn/IyGEixBisxAiJPv/zoW08RNC7BdCnBZCnBBCvJhn3s9CiCtCiODsH797PeddOzpCCK0Q4ivgJrAE+Bm4LIR4/3aY+3mBRYZwc8MYFZnz2BQdhdqt6DM/fbfuZB46WGC6pnYd0GoxhhbeebA0nZcLGaHROY8zQ2PQebkUaJMZFnPXNndS2ejxfqsXt75Y/lDzZoTFoPN2zd/G25XM0Jj8bQrJ69EvgLjsapO1rzeKAnV/n0KjTZ/j89ZzFsts5e1M+q3cPOlhMei98+fRe7uQHhab2yY0Fitv83vnwpSl1Jw6gLZB31Hzw4FcnPFwDrD5suTZfmlhsQXyllSFnq249fc+i61P7+1MWmju9jNnLnDsKZJTw6pY+7gSviU43/Rb/x3CkJpB9xPf0/XoN4TMX0tWfIqlYhcpIioGL4/c44enhxsRUdFEREXj5eGeO909d7pn3vbubkRExWBJzp6uxObZL2LDY3H2ci3QrtfYfmz8aQ0Z6Rn5poeG3KRJZ/OHsX/3lrh4m/PeOHsVv0B/VGoVbhU9qNqwOi7eBdd7v7SerhjCc48VhvBotJ6uBduERZkfGE2YklJROzvka+PQvR2J/+V2dNxHDSR28V8od7w+S7nzeJERFoPVHe8/K28XMvIcLzLyHC9uc2pRl8yoBNKumE+U1TZWVH3nOa7MWflQcluCIkrvp4TeB7YqilIT2Jr9+E6pwCuKotQHugJfCSGc8swfryiKX/ZP8L2e8F4VnS8AO6CKoijNFEVpCtQFqgsh5gOrC1tICPG6EOKIEMKy9V/AKqATmlq1SV3xR77pKhcX7CdMJmnOZ+bT+HKs4rgXCf9xzUMr75ZUhVG9UYxGoleZz5yEWo3Dk3UIefsrTj03GdduzXFs07CMU5pVHNyJC1OXsrvp21yYupR6Xw4v60glYuXhhH3dSkRtt8xlqxITgoYfDeDkR78WmOXcxBfFaGJd47fZ+ORoag7vjk1ljzIIWT5UqlcV98qeBG08VGDe4ve+o8OArkxdMwu9nTWGLAMAu5dvIy48hqlrZvHSh0O4ePQ8JgtVU0tK36g2prQMMkPMlV6rutXRVvYmebNlq2UPg2evVkSszj2ZqDa+D9d/WIsx9eF00P6feQ5Ymv37UqDnnQ0URbmgKEpI9u+hQCTgfme74rrXYOTuQE1Fye05KIqSKIR4E4gGuhW2kKIoC4GFAEKIe/Y6TNHRqN1zD4AqN3eM0dEF2mmbNMPm5YHEjx0JWbklcmFjg8Mns0hZ8hOGs4WPd7EUz8Fdce9vHsCYEnwRKx83krPn6XxcyQyPzdc+Mzw2X9WksDZ3sm1SE5enW1L5g1dQO9iCyYSSkUnEkvX3nddrcFc8+5uv4ycfN+dNyp5n5e2ar9oEkBkWk3NJKqdNnrzufTvgEtiM032n5UzLCIsh8cAZDLHmNcdtC8K2YXUS9py877wAFYd0puKAAAASgi+hr5CbR+/tmq96A5B+R9VE7+NCRpj5EpV336dyBiZH/HuAenPfeKBMd1N1SCcq9+8IQHzwZfR5tp/1HdWmkvLp0YLwdYdRDCW75FZ9SCeq9u8AQFzwZax9crefOXNcsdajsdPjULsSbf8yj93RuzvScuk49g+aQ6XnWxGx/TiKwUhGdCIxhy/g7FeN1OuR91hryXi6uxIemXv8iIiMxtPdDU93Nw4fy+0gRkRF49+kkbmCk7d9VDSe7iWvinQc2JV2L5n34yvHL+GSZ79w8XIhLjz/e8+3aS2qNfJl9p7vUanVOLg68N4fHzG734eEXwpl7ivTza+vmjeNOjQFwGQ08cf0n3PWMWnVDCIul3xMYlZEDBqv3CqXxsuNrIiYgm283TFExIBahcreBmNcYs58h6fbkbR2R85ja7866BvUxHfbEtCo0bg4UvmXz7g+sLAT+uKrOKQzPtnHi8Ts48Xt206svF3zVW8AMsJi81V5rPIcLwCEWoXH009yqNPEnGmOTWvg8Uxzakzpj8bRFkwKpowsbi7eWKLsllSa3VshxOtA3oFmC7M/94vDU1GU2ztpOOB5j+d6EtABee/WmSGEmEp2RUhRlLv2QO/V0THl7eTcpiiKUQgRpSjKgXssXyyG8+dQV6iIyssLU3Q0+vYdSZw5PX9Q35rYjx5LwqTxKPHxeWZocJj2CRmbN5K5eycPW8TPG4j4eQMATgHN8BzSjZi/92DXtBbGxFSyIvN/QGRFxmFMSsOuaS2Sgy7g9kJ7whevu+tznO2VO0i1wtgXMaakP1AnByD85w2EZ+d1DmiK19BuRP+9B7umNTEkpZJ1x5iLrMh4jEmp2DWtSXJQCO59niJskfm5nTr4UeHt5zj1/FRMecaHxO8IpsLbPVFZm8dhOLSoT9jCBx/ke3PJJm4u2QSAW2ATKg3tQvjqfTg2M2fOvCNzZmQ8huQ0HJvVJOFoCN592nFjkfk1Z4TH4dyqHnH7zuDStgGply0/Zuvqks1cXbIZAI/AJlQb2pnQv/fh1LQGWUmphY7FeVAVerXi7Kd/3LvhPVxespnL2Zm9Av2oPrQzN//ej3PTGmQlpRU5FudOhqQ01tbP7Ty2/esDTn70G/HHr+DRtgEebepzY+Ue1DZWuDSrwcWFD7Yf34/2bVrw+6o1dAt8ihOnz2FnZ4u7mwutmzfj6x9+zhmAvO9QEKOHD8HRwR5bWxuOnzpLo/p1+HfDVl7u/WyJc2z7ZQPbfjHvh406NCVgUDcO/ruX6k1qkpqUSkJUfL72O37dxI5fzfu9a0V3Ri2ayOx+HwJg7+pAUkwiQgiefecFdvxm/rfT6XUgBJlpGdRr0wijwUjoxZslzp5+8gK6qj5oK3qSFRGDw9PtCH13dr42ydsO4tgrkPTgc9h3bUPq/jxVRiGw796W6y+/lzMp/vd1xP9uPvZpK3hQ8YdpJe7kQP7jhWtgEyoO7ULE6n043ON44dCsJolHQ/Dq046b2ccLAOd2DUkJCc3XQTr63LSc36uNewFjSvoj1ckpbXmLGYURQmwBvAqZNfmO9Sh3K4YIIbyBX4BBiqLc7stNxNxB0mVnmAB8fLe89+ronBFCvKIoyv/uePIBwNl7LFt8JiPJ877CceYchEpF+sZ1GK9dxWbQUAwXzpG5fx+2rw9HWFvjMOUjAIyRkSROnYTVUx3QNmyMysEBfZeuACR+/hnGSxex7tkb6779ULm44LxwMZmHDpA893OLxY7fehSngKY03vc9prQMLo+ZlzOvweYvONVpLABXJy6k+u3by7cHkbAtCADnrs2p+smraFwdqP3LZFJOX+H8y9MLfS5LiNsahFNAU5ru/w5jWgYXx3yXM6/x5jkc7zQOgMsTf6Rm9u3lcduOEZ+dt9qMV1HptNT/YypgHpB8ecJCjAkphP6whkbrZ4OiELc1iLitQRbJHL3lGG4BTWh98GuMaZmcGTU/Z16LrbM4kH3r57kJi6j/zVuo9FqitwYTnX1nxNmxP1D7k8EIjRpTRiZnxpnfmzp3R5pvmonG3hrFpFD59e7sazsWY3LJBstGbjmGR4AfHQ98hTEtg+DRP+TMa7dlJrsCzWeJdae8TIVerVBb6wgMmsf1Zdu5MGcVjn7V8V/8LlonWzw7NaX2+D7seGo8ANaV3ND7uBKzz3JvPYDwLcF4BvjR+cCXGNMyOJonc8ctn7ItcBIADaa8RKXszN2CvuXqsh2cnbOqqNVyafEmmn09nMCds0HAtT92kXi25AM5x3/4GYePnSA+PpGAngN4a9hADAbzpZwXez1Nu5b+7N5/mG59h2Kt1zN90hgAHB3seWPwS/R7dRQAw4e8nDOo+YOxb+feXt7Cn7YtCw5OLYkT24No1KEpn+2cR2ZaBovHf58zb9q6z5nWffxdl2/eow0dB5qPb0EbD7JnxTYA7N0cGbv0A0yKQnx4LD+9+41lAhtNRHw8n0qLPgG1ioSVm8i8eB23kQNIPxVC8raDJKzYiPfn46i++SeMCUmEjpmVs7iNfwMMYdHmwcylKCb7eNHy4NeY7jhePLl1Vs6t4ucnLMq+vVxLzNbgfHdSefZsRcQddz1K90dRlMCi5gkhIoQQ3oqihGV3ZAot8QohHIC1wOS8RZU81aAMIcQSYNy98ohCCjZ5n6gC8BeQBhzNnvwEYA30UhTl1j2fQAglMrDdvZo9Mjy27OKAd6+yjnFfWoStZq/X82Ud4760Dv+LTR59yzpGsXWOXM6/nv3KOsZ96RHxB6s8XyrrGPeld8TvZEZdunfDR4TO3ZchVXrfu+EjZMm1VZytWeiog0dS3ZD1bClHxwqAwMjlKIoFhu3eh3mVBpTa4NR3bvz6wK9NCPE5EKMoymfZNza5KIry3h1tdMB6YI2iKF/dMe92J0kAXwLpiqLctTR414pOdkemuRCiI1A/e/I6RVG23s8LkyRJkiRJAj4DlgshhgHXgL4AQogngOGKoryaPa0d4CqEGJy93ODsO6x+E0K4AwIIBu55h0mxvhlZUZRtwLb7eSWSJEmSJJWO8nKvsaIoMUBAIdOPAK9m//4rUPBWTvO8jvf7nI/GNyNLkiRJkiQ9BI/M37qSJEmSJOnBmEp1RFD5Iis6kiRJkiQ9tmRFR5IkSZLKuUfj+7AfTbKiI0mSJEnSY0tWdCRJkiSpnJMVnaLJio4kSZIkSY8tWdGRJEmSpHKuvHyPTlmQFR1JkiRJkh5bsqIjSZIkSeWc/B6dosmKjiRJkiRJjy1Z0ZEkSZKkck7edVU0WdGRJEmSJOmxJTs6kiRJkiQ9tuSlK0mSJEkq5+Tt5UUTivJwN48QQm5/SZIk6f8VRVFK9T6omVUGlNpn7cRrv5are7xKpaJztma30ngai6gbsp793r3KOsZ9aRm2mjM1ys82Bqh3cT2nq3cv6xjFVv/yOpZ7vVzWMe5L3/Bl1HH3L+sY9+Vc1GGGVOld1jGKbcm1VWRGXSrrGPdF5+7Lv579yjpGsfWI+IPLjQLLOsZ9qX5iS6k/p0nWdIokx+hIkiRJkvTYkmN0JEmSJKmck7eXF01WdCRJkiRJemzJio4kSZIklXNyhE7RZEVHkiRJkqTHlqzoSJIkSVI5J8foFE1WdCRJkiRJemzJio4kSZIklXOmcvUVfqVLVnQkSZIkSXpsyYqOJEmSJJVz8puRiyYrOpIkSZIkPbZkRUeSJEmSyjlZzymarOhIkiRJkvTYkh0dSZIkSZIeW/LSlSRJkiSVc/ILA4smKzqSJEmSJD22ZEVHkiRJkso5eXt50R6Zjo5t22Z4TH4DoVYRv2IjsQtX5JsvtBq8Px+Hvn4NjPFJhI6eSdatSByebY/Lq71z2lnVrsbVXiPJOHs5Z1qF+VPRVfLiyjNvWTx3lenDcO7YFGNaBpfGzCP15OUCbWwbVsf3qxGo9DritgVxbcoiAFyeaUnFsS9iXbMip7pPIOXEpZzXWm32cOwa+aKYFK5NXUTi/tMlzmrbthmeH2Rv4+UbiblzG+s0+Mweh76BeRvfGmXexgBWtaviNX0EajsbFJPC1edHoWRmYd+9HW5vvohQq0jafoioz5eUOGe+zO2a4TXldYRaRdyfm4j5oZDMc8Zi3aAGxrgkbo78LF9m70/eQWVnA4rClZ6jUTKzcB/7Ck69OqJ2sONcoxcsmhfAb/oreAc0xpCWyeHRPxB/8mqBNg3e70OVF9qic7JldY1h+eZVfLY59cf1RlEUEk5f5+Db3+FYvwrNPhuCxt4axWji7Nf/cPPfAxbLPGnGWNoFtiI9LZ1JIz7mzMnz+ebb2Nrw65qFOY+9vD1Ys3I9M6d8iXcFT2Z++yH2jvao1SrmTv+OXVv30bBJPT76YhIAQgi++/xHtqzbYbHML384lIYdmpCZlsmicfO4fvpKkW1H/DgB98qeTO3yLgCV6lZh4IzX0dvoib4ZxcLRX5OenIZaq2HQp69TtaEviqKw7KMlnD9Q8vfeB5/OZdfeQ7g4O/H3rwsKzFcUhZlfLWD3/sPo9VbMmDyWerVrAPDPus38sPQPAN4Y1I/nuncC4PS5ED6YMZf0jAzatvRn4ujhCGHZr8et/8kgPAP8MKZlEjxqPgmF7Mt13u9LxT7t0DrZst53SM50lxZ1aPDxK9jXq0zQ8G8I++9Qzry6H7yER2ATAEK+/IvQfyyzL1u3egKXCW8hVCqSVq8nYfGf+ebrmzbE5b030dWsTuSEGaRu2Z0zz/P7T7FqWJeM4FNEjJiSu8yTfri8+zpCqyHjTAjR074Ao7xQVJ48GpeuVCo8P3yLm69N5XL34Tg88xQ630r5mjj26YIxIZnLnV4l9ufVuI8fCkDimh1cfW4EV58bQdj4L8i6GZGvk2PXuRWm1PSHEtupY1Osq3kT3Pptrry3gOozXy+0XbXP3uDy+PkEt34b62reOHUwv8FTz13nwquzSTpwJl97j/6BAJwIGMPZfh9R+cPBUNIDmEqF17S3uPHqVC51y97GNfJvY6cXumBMTOZS4KvELlmNR/Y2Rq3CZ854wqfO43L3N7k+YAKKwYjayR7PCUO5Pmgil7u/icbNGZuWjUuW847M3tPe5PrQD7nY5U0cn21XMHP2fnGx42vELPkbjwlDcjJXmDuOsCnfcbnbW1x7+X0UgxGA5K0HudJrjOVy5uHVsTF21b1Y32osR8cvoulnQwptF7rpGFu7Ty0w3a6aJ3VG9GBbj2lsaj+B4Km/AGBMy+DQyPlsaj+B3S/Pwu/jAWgdbCySuV1AK6pUr0TX5r35cOxMps6eUKBNakoqz3cckPMTejOMzWt3ADB8zFA2/LuV3gEDGfv6B0yd9R4AIecu0afTIJ7vOIDXXxzJtM/fR61WWyRzw/ZN8KzmzcT2I1g6aQGvzCj8vQfQtEtzMu44Bgz+7E1WzvqNqV3HErTxEN1efw6Ap/qZ33tTu45lzoCPeXHyKxbpPPTs3okFcz8pcv7u/Ye5fjOUdX8uYtp7I5k+Zx4ACYlJzF+yjN9//Irff/yK+UuWkZCYBMD0OfOYNmEk6/5cxPWboew5cKTEOfPyCPDDrroX21qO4fi4H2k4a1ih7cI3BbG72wcFpqfdiubYqAXcWr03/3oDm+DYsBq7At5nT/cp+L75DBo765IHVqlwnTSCiLcmcbPXq9h27YC2euV8TQzhkURN+Zzk9dsKLJ7w8wqiPpiVf6IQuE8fT+SEGdzq/TqGsEjsenQuedaHQCnFn/Lmrh0dIYS/EMIrz+NXhBD/CCG+EUK4WCqEvlEtMq+FknUjHLIMJK7dhV1gy3xt7AJakLB6CwBJG/YU+oFq/8xTJK7dmZvfRo/LkF7EfP+7paLm49zlSaJW7gAgOegCakdbtB7O+dpoPZxR21uTHHQBgKiVO3Du2hyA9Iu3SL8UWmC91rUqkbjnJACGmASMCSnYNvYtUVbrQraxfcAd2ziwBQl/mbdxYp5tbNumKRnnr5BxznzGbIxPApMJbSUvMq+GYoxNBCBlXzAOXVqXKGe+zI3zZ074bxf2gS3ytbEPbE7CX1vNmdfvwTY7s13bpqSfu1ogM0Ba8HkMUXEWy5mXT9dmXFthPkuMDbqIzsEGvYdTgXaxQRdJj4wvML1a/45c+nkzWQmpAGTEmLdt8uVwkq9EAJAeEU9GdCJWrvYWydyxWzv+Wb4OgONHT+HgaI+7h2uR7atWr4yLmwtHDhwDQEHBzt4WAHsHOyIjos050zIwGs2dS53eCsWCh8gmnf3Z99cOAC4fC8HG3gZHd6cC7axs9HR59Rn++3ZVvume1by5cNB8gnF6z3GadTO/J31qVuTsvlMAJMUkkpqYStVGJXvvATzh1xBHh6L/vbbvOUCPrgEIIWjcoC5JSclERcey9+BRWvo3wdHBHkcHe1r6N2HvwaNERceSkpJK4wZ1EULQo2sA23bvL3HOvLy6NOPGcvO+HB90Ea2DDVaF7MvxQRfJKGRfTrsRTdLZ62DK/+9uX6sCMQfOohhNGFMzSDxzHfeOJT9BsmpQm6wboRhuhYPBQMqGHdi0b5WvjSE0gqyQKwUyAaQfOoaSkppvmsrJASXLgOHaLfNr2n8U24C2Jc4qla57VXR+ADIBhBDtgM+A/wEJwMK7LHdftJ6uGMKjcx4bwqPReroWbBMWZX5gNGFKSkXt7JCvjUP3diT+l9vRcR81kNjFf6GkZ1gqaj46LxcyQ3NzZ4bGoPNyKdgmLOaube6Uevoqzp39Qa3CqpIHto18sfJxK1FWjZcrhrDcrFnh0Wju2MYaT1eywvNs42TzNtZVqwAKVFo8nWp/f4PLa+bLPZnXwtBVr4i2ggeoVdh3aonG271EOQvkCbv7fqHxciWrkP1CV7UCKAqVl3xMtX++xvX13pQGay8XUkNz/71Tw2Kx9na+yxL52ft6YVfdmw7/fEjH/z7Cs0OjAm2c/aqj0mlIvhppkcyeXh6Eh0bkPA4PjcTD26PI9t17dWL9P5tzHn83+0ee7d2V7cFrWLDsSz6ZOCdnXqOm9Vmz6w/+2bmMj8bPyun4lJSzpyuxebZzbHgszl4FO2e9xvZj409ryLjjGBAacpMmnf0B8O/eEhdv8/vrxtmr+AX6o1KrcKvoQdWG1XHxLrrTZykRUTF4eeS+xz093IiIiiYiKhovj9z3lKd77nTPvO3d3YiIisGS9N4upOfZxmlhsei9S35+m3j6Gh4dGqO21qFzsce1dT2sfUq+jdUebhhvH78AY2Q0Gs+SHTdNcQkItRpdvVoA2HZqh8bLcsc4SzKV4k95c68xOmpFUWKzf38RWKgoyipglRAiuKiFhBCvA0XXkh8CfaPamNIyyAy5BoBV3epoK3uTPPNH8wdxORL5x1asa1ak4YbPybgZRdKRcyimstu9hFqNdbN6XO09GlNaBpX/9ynpp0JI3X+c8A/nUeHriSgmE2lBZ9FV9i6znHkJjRqbJ+pxpdcYTGkZVPllBumnLpKy73hZR7sroVZjX92THb0/wdrbhQ6rp7Cp4/tkJZrPNPUeTjT/9k0OjfoBlLIpInfr2YkJb0/Ledz9+S6s/vM/fp6/DL8nGjLru2n0aPcSiqJwIug0z7brR/WaVZn57Yfs2rqPzIzMUslZqV5V3Ct78sf0n3GtmP/DafF73/Hyh8N4dsQLBG85giHLAMDu5dvwrlGRqWtmEXMrmotHz2Mqw/fe4yhq50mc/HxpveYjMmOSiDsSgvIIj3mJnDAD1/HDETotafuOPtJZpcLds6MjhNAoimIAAsjfeSlyWUVRFpJd8RFC3PNonBURg8Yrt+et8XIjKyKmYBtvdwwRMaBWobK3wRiXmDPf4el2JGWPGQCw9quDvkFNfLctAY0ajYsjlX/5jOsD379XnLvyHNwVj/7mwYDJwRfR5am06HxcyQyPzdc+MzwWXZ4zwsLaFGA0cW1a7qDe+v9+WuglrvthCI9B452bVevlZt6WedtExKD1cscQnr2N7czb2BAeTerhUznbO2XnEfT1a5C6/zjJ2w6RvM08yNDpxa45l4cswRARg9b77vuFITwGrXeezNn7RdYdmZN3HkFf3/ehdHR8B3eiev8OAMQev4yNjyu3U9p4u5AWVvzLZGlhscQGXUQxGEm9EUXS5TDsqnkRd/wyGjtr2vw6jpOfrSA26GKJMr889AVeGNATgFPHzuDl45kzz8vHg8iwwqtFtevXRKPRcObEuZxpL7zcg9f6jQQg+MhJrPRWOLs6ERud+7ovh1wlNSWNmnV8OX387ANl7jiwK+1eCgDgyvFLuOSpArh4uRAXnn/f8G1ai2qNfJm953tUajUOrg6898dHzO73IeGXQpn7ynTAfBmrUYemAJiMJv6Y/nPOOiatmkHE5bAHyns/PN1dCY/MrV5GREbj6e6Gp7sbh4+dyJ0eFY1/k0bmCk7e9lHReLqXvCpSdUgnKvfvCEB88GX0ebaxtbcL6WH3OHYVU8jXfxPy9d8ANPn+HVIssI2NkdGo81Rb1B5uGCKi77JE8WScOEvYEPMgduuWzdBUqVjidT4M8q6rot3r0tXvwE4hxD9AGrAbQAhRA/PlK4tIP3kBXVUftBU9QavB4el2JG/NPwo/edtBHHuZBwrad21D6v7cNz9CYN+9LYlrd+VMiv99HZfaDuRSxyFcf2kcmVdvlbiTAxDx8wZOdhrLyU5jidtwCPcX2gNg17QWxsRUsiLzf6hlRcZhTErDrqm59On+QnviNh66c7X5qKx1qKytAHBs1xjFYCQt5GaJcqcVso2T7tzGWw/i+Lx5Gzt0bUPqAfM2Tt4dhL52VYTeCtQqbPwbkHnxOgBqF0dzZgc7nPs/TfzyjSXKmS/ziQvoqlbIyez4TDuStx7M1yZp60Ecnzd/+Dl0a0NK9n6RvCsIq1p5Mj/ZkIyQGxbLltelnzezudMkNneaxK31R6jSx3wN36VpDbKS0godi1OUWxuO4N6qLgA6Fzvsq3uTcj0SoVXTavForq3Yw621d99/imPZ4pU5A4u3rt/Jc327A9C4WQOSEpOJiiz8MsjTvTqzdnX+f+PQW+G0aGu+DFS9ZlWsrHTERsdRobJPzuBjn4peVK9ZhVs3HrzDvu2XDUzrPp5p3cdzbNMhWj3f3vycTWqSmpRKQlR8vvY7ft3Eu81f5702bzGzzweEXwljdr8PAbB3NV/2FkLw7DsvsOM386U4nV6HLvu9V69NI4wGI6EXS/beK472bVrw74atKIrC8VNnsbOzxd3NhdbNm7HvUBAJiUkkJCax71AQrZs3w93NBVtbG46fOouiKPy7YSsd2rS49xPdw9Ulm9kVOJFdgRMJ33CESn3N+7JT0xpkJaUWOhbnvqkEWmc7AOzrVsahXmWidpy4x0L3lnH6PNrKFdBU8AKNBtuu7UndWfJxSyoXJ/MvWi2OQ14kaeV/JV6nVLruWtFRFGWGEGIr4A1sUpScWrkKGGGxFEYTER/Pp9KiT0CtImHlJjIvXsdt5ADST4WQvO0gCSs24v35OKpv/gljQhKhY3JHx9v4N8AQFm0etFqK4rcexSmgKX77vseUfXv5bQ03f8HJTmMBuDJxYc7t5fHbg4jfFgSAc9fmVP3kVbSuDtT+ZTKpp69w7uXpaF0dqfP7VDApZIbHcHHENyUPazQR/tF8Ki3+xHx7+e1tPGoA6SfN2zh+xUZ85ozDd8tP5tvLs7exKTGZmMWrqfbXVyiKQsrOIyTvOAyA55Q30NepDkD0vGVkXr1V8qx3ZK7883SESkX8ys1khFzHffQA0k6GkLz1IPHLN1Hhi3HU2PYjxvgkbo6anZM5dvHfVFv9JaCQvCM3s8eEITg+2x5hbUXNPUuJX76RqG+WWSRy+NZgvAP86LZ/Lsa0TA6P+SFnXqfNn7K5k/l264YfvETlXq1QW+t4+ui3XFm2nTNf/EXE9hN4PdWQLjtnoxhNnJi+jMy4ZCr3bo17izpYOdtTtW87AA6N/oGE09dKnHnnlr20C2zFxkN/kZ6azqRR03Pm/bXtV57vOCDncdfnAnnjpdH5lp/94dd8PHcSg4a/jKIoTBz5MQDNmjfmtRGDyDIYUEwmPp4wm/hYy5wfndgeRKMOTfls5zwy0zJYPP77nHnT1n3OtO7j77p88x5t6DiwKwBBGw+yZ4X5Lhx7N0fGLv0Ak6IQHx7LT+9a4L0HjP/wMw4fO0F8fCIBPQfw1rCBGAzmy2Uv9nqadi392b3/MN36DsVar2f6JPNdgY4O9rwx+CX6vToKgOFDXs4Z1PzB2Ldzby9v4U/blv4WyXpb5JZjeAT40fHAVxjTMggenbsvt9syk12BEwGoO+VlKmTvy4FB87i+bDsX5qzC0a86/ovfRetki2enptQe34cdT41HpdXQ+h9zh9OQlMaxt7+zzOUgo4mYmfPwmj8TVCqS/t5I1qVrOL01iMzTF0jduR9d/Vp4fjkNlYMdNk+1wPjWK9x6/jUAvJfMRVu1EsLGmkqblhE9bS5p+47gOKgPNu1agEqQtHwN6YeCS571IZD1nKIJ5SFf5xdCKGdrdnuoz2FJdUPWs9+7V1nHuC8tw1Zzpkb52cYA9S6u53T17mUdo9jqX17Hcq+XyzrGfekbvow67pb98HvYzkUdZkiV0hk4bglLrq0iM+pSWce4Lzp3X/717FfWMYqtR8QfXG4UWNYx7kv1E1tQFMWyX2p0D2Oq9iu1vs6XV/8o1ddWUo/MFwZKkiRJkvRg5BDpoj0aXxgoSZIkSZL0EMiKjiRJkiSVc5b8Qs7HjazoSJIkSZL02JIdHUmSJEmSHlvy0pUkSZIklXNyMHLRZEVHkiRJkqTHlqzoSJIkSVI5J/8ERNFkRUeSJEmSpMeWrOhIkiRJUjkn6zlFkxUdSZIkSZIeW7KiI0mSJEnlnByjUzRZ0ZEkSZIk6bElKzqSJEmSVM7J79EpmqzoSJIkSZL02JIVHUmSJEkq5+Qf9SyaUJSHu3GEEHLrS5IkSf+vKIoiSvP5Xq36Qql91v50deUDvzYhhAvwJ1AVuAr0VRQlrpB2RuBk9sPriqL0yJ5eDfgDcAWOAgMVRcm823OWSkXnb8+XSuNpLKJnxO9s8uhb1jHuS+fI5Vxq0KmsY9wX31Obie7erqxjFJvbul2Etm5f1jHui8/eHZyr3bWsY9yXOuc3cLZmt7KOUWx1Q9bzr2e/so5xX3pE/EFm1KWyjlFsOndf1Fqfso5xX4xZoaX+nOVojM77wFZFUT4TQryf/XhCIe3SFEXxK2T6LOBLRVH+EEIsAIYB8+/2hHKMjiRJkiRJpeU5YGn270uBnsVdUAghgI7AyvtZXnZ0JEmSJKmcU0rxPyHE60KII3l+Xr+PqJ6KooRl/x4OeBbRTp+97gNCiJ7Z01yBeEVRDNmPbwIV7vWEcjCyJEmSJEnFpijKQmBhUfOFEFsAr0JmTb5jPcpdxvFWURTllhCiOrBNCHESSHiQvLKjI0mSJEmSxSiKEljUPCFEhBDCW1GUMCGENxBZxDpuZf//shBiB9AEWAU4CSE02VWdisCte+WRl64kSZIkqZwzleJPCf0LDMr+fRDwz50NhBDOQgir7N/dgNbAGcV8m/h24IW7LX8n2dGRJEmSJKm0fAZ0EkKEAIHZjxFCPCGE+Cm7TV3giBDiOOaOzWeKopzJnjcBeFcIcRHzmJ1F93pCeelKkiRJkso500P+TjxLURQlBggoZPoR4NXs3/cBDYtY/jLw5P08p6zoSJIkSZL02JIVHUmSJEkq58pHPadsyIqOJEmSJEmPLVnRkSRJkqRyziRrOkWSFR1JkiRJkh5bsqIjSZIkSeWcIis6RZIVHUmSJEmSHluyoiNJkiRJ5ZwFvrH4sSUrOpIkSZIkPbZkRUeSJEmSyjl511XRHqmOTsNPXsEjwA9jWibHRi0g4eTVAm3qvt+XSn3aonWyZa3v0JzpVV8JoNqQTihGE4aUDI6P/4mkC7dwb9eAepNfQqVTY8o0cvrj34jee6bAeh9U7RmDcQtogjEtg9Mj55N08kqBNvaNqlH/m7dQ63VEbz3G+ck/A2BXvwp1P38NtZUWxWDk7PuLSDx2KWc5Bz9f/NdO5+QbXxP538ESZ7Vu/QSuE95EqFUk/rWBhEV/5puvb9YQ1/eGo6tVncj3PiVl8+6ceV7zZ2DVqC7px04R8c7UnOnun4xD36wRpuQUAKI++JzM85dLnPU2bbMnsX19BKhUpG9aS/qKZfkz9+yLVZenwWhESYgn+atZmKIicuYLaxscFywla/8eUhZ8DYDDzK9QubiiZGYAkPjBOJSEeIvktWruj8Ood0ClJvW/taT8+nu++brGjXAY+TYaX1/ip31M+o5dOfPs33wDq1YtEEKQcfgoiV9/C1ZWOE+fhqaCD4rJRMbefSQt+NEiWW+zadMMz8nDQaUiYeUGYn9ckW++0GrxmjUWff2aGOMTCX13JoZbkaBR4/XJaPT1fEGtJvGfrcQuXI7Qaan06+cInRahVpO0aQ8x3/5q0cy2bZvhMfkNhFpF/IqNxC68M7MG78/Hoa9fA2N8EqGjZ5J1KxKHZ9vj8mrvnHZWtatxtddIMs7m7rMV5k9FV8mLK8+8ZdHM9T8ZhGf28S141PxCj2913u9LxT7t0DrZst53SM50lxZ1aPDxK9jXq0zQ8G8I++9Qzry6H7yER2ATAEK+/IvQfw5YJO8Hn85l195DuDg78fevCwrMVxSFmV8tYPf+w+j1VsyYPJZ6tWsA8M+6zfyw9A8A3hjUj+e6dwLg9LkQPpgxl/SMDNq29Gfi6OEIISySF6B2bV8W/fglTZo0YMrUWcz98odC21WtWollv36Pi4szQcdOMmjwSLKystDpdPy85GuaNmlIbGwcL/V/k2vXbgIw4b13GDK4H0aTiTFjprBp806L5ZYerkfm0pVHgB+21b3Y2vJdjo/7icazhhbaLnxTEDu7TSkw/eZf+9je4X12BE7i4ndrqD9tAACZsUkcfOVztnd4n6BR82k6z3IHL7cAP2yqebG3xSjOjvuRurOHFdqu7uxXOTt2IXtbjMKmmheuHf0AqDW1P5fnrORAwAQuzV5OzSn9cxdSCWpOeZnYHScsE1alwm3yO4S/NZkbz72GXbf2aKtXztfEEBZJ1JQ5JK/bVmDx+J9XEDVpdqGrjp37I7f6vMmtPm9atJODSoXtm6NJ/PA94t8chFW7ANSVquTPfDmEhNGvk/DOUDL27sRm6PB8860HDsNwquA2TPr8ExJGvErCiFct1slBpcLh3VHEjnufqAGDsQ4MQFM1f15jRATxn84ibcvWfNO1Deqja9iA6EHDiHplKNq6tdE1aQxAyu9/EtV/ENFDXkPXsAFWLe7rz7zcM7Pn1Le5+doUrjzzBvZPt0fnm3+/cHyhM6bEZK50GUbc0r9xH2t+b9p3bYvQarna4y2u9R6J04vd0VTwQMnM4sbg97nW822u9nob2zbN0DeuY9nMH77Fzdemcrn7cByeeQqdb6X8mft0wZiQzOVOrxL782rcx5szJ67ZwdXnRnD1uRGEjf+CrJsR+To5dp1bYUpNt1zWbB4BfthV92JbyzEcH/cjDWcVfqwI3xTE7m4fFJiediuaY6MWcGv13vzrDWyCY8Nq7Ap4nz3dp+D75jNo7Kwtkrln904smPtJkfN37z/M9ZuhrPtzEdPeG8n0OfMASEhMYv6SZfz+41f8/uNXzF+yjITEJACmz5nHtAkjWffnIq7fDGXPgSMWyXpbbGw8o8dMKbKDc9vMTyfz1Tc/UqdeG+LiEhg65CUAhg55ibi4BOrUa8NX3/zIzE8nA1C3bk369n2ORn4defqZ/nz7zaeoVI/MxydgvuuqtP4rbx6ZfynvLs24sdxcQYgLuojWwQYrD6cC7eKCLpIRGV9guiE5Led3tY0Vt78QO+HUNdIjzO2Tzt1Erdeh0lmmkOXe1Z+wFeYz8oSjIWgcbNHdkVnn4YTGzpqEoyEAhK3YhUc3fwAUBTT25oOSxsGGjIi4nOUqv9qNiP8OkhmdYJGsVg1rk3U9FMPNcDAYSFm/E9sOrfK1MYRGkHnhijnYHdIPBmNKSbVIluLS1KqLMfQWpvAwMBjI2LUNbYs2+doYThyDDHNlxnDuDCo395x56hq1UDk5k3XscKnk1datg/FmKMZQc960LduwatM6XxtjeASGS5fBdMfQQUVBWOlAowGtFjQaTLFxkJFB5rFgcxuDgawLIajc3bEUfaNaZF0PJetmOGQZSFq3E7uAFvna2AW0JOHvLQAkbdyNTUu/nMwqGz2oVQi9DiUrC1OyeR9RsjsLQqNBaDSF7lMlyZx5LZSsG+bMiWt3YRfY8o7MLUhYnZ15wx5sWjYusB77Z54icW3uWbmw0eMypBcx3/9eoG1JeeU5vsXf5fgWX8TxLe1GNElnr4Mp/3a0r1WBmANnUYwmjKkZJJ65jnvHgq/1QTzh1xBHB/si52/fc4AeXQMQQtC4QV2SkpKJio5l78GjtPRvgqODPY4O9rT0b8Leg0eJio4lJSWVxg3qIoSgR9cAtu3eb5Gst0VFxXDk6HGysrLu2q5D+9asWrUWgF9+WcFzPboA0OPZzvzyi7k6uGrVWjp2aJM9vQvLl/9DZmYmV6/e4NKlqzzp38Si2aWH55Hp6Oi9nUkLjc15nBYWi7W3832to9qQTgQe+JL6U17m5OT/FZjv/cyTJJy8iinTUOK8AFbezqTfisl5nB4Wg97bJV8bvbcL6WG5rys9NBar7Nd1YcpSak4dQNug76j54UAuzjAfYK28nPHo5s/NnzdbJCeAxsMNQ3hUzmNDRBRqT1eLrNt5xGAqrFqA63vDzR/SFqJydcMUHZnz2BQdhdrVrcj2+s7dyTqSfYlPCGyHvUXqovmFtrUb8z6O3/6Edb9XLJZX7e6GMTJP3qgo1O5F580r6/QZMoKO4fnPKjz/WUnmocMYrl3P10bY2WLVuiWZR4Msllnj6UZWWJ79IjwazR37hcbDFUNYtPmB0YQpKRW1kwNJG/dgSk3Hd/cyfLf9j9jFf2FKSDa3U6mosnoeNfb+Tsq+Y6SfOG+xzFpPVwzh0fkya+/IrPV0xXD7dd3O7OyQr41D93Yk/pfb0XEfNZDYxX+hpGdYLOttem8X0kNzjxVpYbEFjhUPIvH0NTw6NEZtrUPnYo9r63pY+1jmfX0vEVExeHnk7t+eHm5EREUTERWNl0duZ9zTPXe6Z9727m5ERMVQ2lxdnYmPT8BoNAJw81YYPhW8APCp4MWNm6EAGI1GEhIScXV1xscnd/qdy0iPvnt2dIQQtYQQW4UQp7IfNxJCFKyt5l/mdSHEESGEZeuS93BlyWa2tBjD6U9+p9aYnvnm2deuQP0PXiJ4/E+lGemuKg7uxIWpS9nd9G0uTF1KvS/Nl11qTx9MyCfLLHoW/LDEfrWYmz2GcavfCFQO9jgN61smOXQdOqGuWZu0VeZxAfqne5J55CCmmKgCbZPnfELC20NIeG8EmvqN0HXsUtpxC1BX8EFTpQqRz/chslcfdE2boG3UME8DFU7TppCy4i9zxegRYN2wNphMXGrXn8uBg3EZ8jzaitkHf5OJa73e4VL7gVg3qoWuZpW7r6yU6RvVxpSWQWbINQCs6lZHW9mb5M2WrTA8bFE7TxK5NZjWaz6i6fwRxB0JQTHKG43/PzKV4k95U5xrOD8C44EfABRFOSGEWAYUefFWUZSFwEIAIUSRn9bVhnSiSv8OAMQFX8baJ/cMx9rbhbSwuKIWvatbf++n8ayhHMt+rPd24cnF7xI0Yj6p1yLvuuy9VBzSmYoDAgBICL6EvkLu2ZPe2zVf9QYg/Y4zN72PCxnZr8u771M5A5Mj/j1AvblvAODgV52GC0YCoHV1wC2wCYrRSNT6B+83GiKj0XjlnmVpPN0xRpT8bMoYnf16s7JI+nsjjoNfKPE6bzPFRKNy88h5rHJzxxgTXaCd1q8Z1i8OJHHCSDCYS9aaOvXR1G+E/unnEHpr0GpR0tNI/XkhptvrSEsjc+cWtLXqkLltY4nzGqOiUXvkyevujjGqYN7C6Nu1Jev0GZQ08yWfjAOH0DWoT9aJkwA4vjcO441bpK5YVeKceRkiotF659kvvNww3LFfGCJj0Hi7YYiIBrUKlb0NxvhE7J9pT8ruI2AwYoxNIC3oDPoGNc2XwbKZklJIPXgC27ZP5HQqSiorIgaNV25lQOPlRtYdmbMiYtB4u5tfy+3McYk58x2ebkfS2h05j6396qBvUBPfbUtAo0bj4kjlXz7j+sD3Hzhn1SGdqNy/IwDxwZfR56m0WN9R6S2JkK//JuTrvwFo8v07pFwunY6wp7sr4ZG5+3dEZDSe7m54urtx+FjuuLiIqGj8mzQyV3Dyto+KxtO95NWnN4cPYtgw8/jGZ3sMJCws4q7tY2LicHJyRK1WYzQaqVjBm9Bb5n029FY4lSr6cOtWGGq1GkdHB2Ji4ggNNU+/Le8y0qOvOJeubBRFOXTHNItc+7myZDM7AiexI3AS4RuOUKlvWwCcm9YgKymt0GvVRbGtlltG9AxsQsoV806ocbChxa/jOTPjD2IPXyhx5ptLNnEgYAIHAiYQtf4w3n3aAeDYrCaGpFQy78icGRmPITkNx2Y1AfDu046oDeYxIxnhcTi3qgeAS9sGpF42Z97jPyLnJ3LNAc5OWFSiTg5AxqnzaKtUQFPBCzQabLs9RcqOkp+9qt1yO3G2HVuRdfFqidd5m+HCOdQVKqLyNGe2ateRrIP5B2Oqq9fE9p2xJH08Md+g4uQ5nxA/pC/xQ/uRung+mVs3kvrzQlCpEQ6O2Qur0fq3xHCt4J1yDyLr3DnUlSqg9jbntQ7sSMbefcVa1hgRaR58rFaBWo3OrzGGa+aOgd1rQxG2tiR+M88iOfNKP3kBbRUftBU8QavBvvtTJG/Lf9dO8rYDOPYMBMC+S1tSDxwHwBAWhU0L83gQYW2FvnEdMi/fQO3siMre1jzdSodNqyZkXr5h0cy6qj5oK5ozOzzdjuStd2Y+iGOv7Mxd25C6P8+AdCGw796WxLW5d7zF/76OS20HcqnjEK6/NI7Mq7dK1MkBuLpkM7sCJ7IrcGK+45tT0xpkJaXe1/GtSCqB1tkOAPu6lXGoV5koS93AcA/t27Tg3w1bURSF46fOYmdni7ubC62bN2PfoSASEpNISExi36EgWjdvhrubC7a2Nhw/dRZFUfh3w1Y6tGlx7ye6h/kLlvKEf2ee8O98z07ObTt27qN376cBGDiwD/+u2QTAmv82MXBgHwB6936a7Tv25kzv2/c5dDodVatWokaNahw6fKzwlZcRRVFK7ae8KU5FJ1oI4Uv26F4hxAuAxU8ZIrYE4xngR+CBLzGmZXBsdO6o+fZbPmVH4CQA6k15iYq9WqG21tE56FuuLdvB+TmrqDa0M+7tGqBkGchMSCFopHlsRvWhnbGt5kntd3tR+91eAOzr9xmZ0YkFQ9yn6C3HcAtoQuuDX2NMy+TMqNzxIC22zuJAwAQAzk1YRP1v3kKl1xK9NZjorcEAnB37A7U/GYzQqDFlZHJm3MISZyqS0UT0p/PwWvApQq0iafVGsi5dw/ntV8g4fYHUHQewql8Lz68/RGVvj81TLXB+ayA3e70OgPfPX6CrVglhY03lLb8RNXUuafuO4vHZ+6hdHAFBxvlLRH/8teUym4ykzP8Kh+lzQKUiY/M6jNevYj1gKIaQc2Qd3IfNsOEIvTX2Ez8yLxIVSdLHk4pep1aLw/TPQa0BlYqs4KNkbPzPMnmNJhLnfoPL3NmgUpG2dj2GK1exGzaErHPnydi7D22d2jh/Oh1hb4e+dUvshg0heuAQ0nfsRNesCe5LF6MoChkHD5Oxdz8qdzfsBw3EcPUabovN+0fKqtWk/bfOYpkjp8+n4qJPQKUmYdUmMi9ex3XEQNJPXSBl+0ESVm7Ee/Z4qm1chDEhibB3PwMgbtkavD99l6prFoAQJPy1iYwLV7GqVRWvz8Yh1CoQgqQNu0nZcee5UskyR3w8n0qLPgG1ioSV5sxuIweQfiqE5G0HSVixEe/Px1F9808YE5IIHTMrZ3Eb/wYYwqLNg5lLSeSWY3gE+NHxwFcY0zIIznN8a7dlJrsCJwJQd8rLVMg+vgUGzeP6su1cmLMKR7/q+C9+F62TLZ6dmlJ7fB92PDUelVZD638+BMCQlMaxt7+z2KWr8R9+xuFjJ4iPTySg5wDeGjYQg8F8jvtir6dp19Kf3fsP063vUKz1eqZPGgOAo4M9bwx+iX6vjgJg+JCXcwY1fzD27dzby1v407alv0Wy3ubp6c7B/etxcLDDZDIxcsRrNGzcnqSkZNb88z9eHz6esLAIJk6awbJfv+fjae8RfPw0i5eYx0cuXvIHS3/+hnNn9hAXF8/LA8x36Z45c4GVK9dw8vh2DEYjI0dNxnTnDQXSI0vcq3cmhKiO+TJUKyAOuAIMUBTlarGeQAjlb8+XShiz9PSM+J1NHmUzzuRBdY5czqUGnco6xn3xPbWZ6O7tyjpGsbmt20Vo6/ZlHeO++OzdwbnaXcs6xn2pc34DZ2t2K+sYxVY3ZD3/evYr6xj3pUfEH2RGXbp3w0eEzt0Xtdbn3g0fIcasUBRFsdwXBBXDc5WfKbVSyz/X/yvV11ZS96zoKIpyGQgUQtgCKkVRkh5+LEmSJEmSpJIrsqMjhHi3iOkAKIoy9yFlkiRJkiTpPsgLaUW7W0Wn6G+KkiRJkiRJKgeK7OgoivJRaQaRJEmSJOnBlMc/zVBa7jlGRwihB4YB9QH97emKohT+x6gkSZIkSZIeEcX5Hp1fAC+gC7ATqAjIAcmSJEmS9IgwoZTaT3lTnI5ODUVRpgApiqIsBZ4Gmj/cWJIkSZIkSSVXnC8MvP1nYOOFEA2AcMDjLu0lSZIkSSpF5fEbi0tLcTo6C4UQzsAU4F/ADpj6UFNJkiRJkiRZQHG+MPD2n/veCVR/uHEkSZIkSbpf8nt0ilacu66cgFeAqnnbK4oy8qGlkiRJkiRJsoDiXLpaBxwATiI7jZIkSZL0yJHfo1O04nR09IqiFPrnICRJkiRJkh5lxfoeHSHEa0IIbyGEy+2fh55MkiRJkiSphIpT0ckEPgcmQ05tTEEOTJYkSZKkR0J5/CK/0lKcjs5YzF8aGP2ww0iSJEmSJFlScTo6F4HUhx1EkiRJkqQHI78wsGjiXhtHCLEa8x/03A5k3J5e3NvLhRBy60uSJEn/ryiKIkrz+QIqdi61z9qtNzeV6msrqeJUdP7O/nlgVxoHlmTxUlXt+BbO1e5a1jHuS53zG/jPo19Zx7gvz0T+wfyK/cs6RrG9efM3fvUuP3kBBoT9xiaPvmUd4750jlzOlnKUOTByOZcblZ/jG0D1E1tQa33KOkaxGbNCyYy6VNYx7ovO3bfUn1OO0Slacb4ZeakQwhqorCjK+VLIJEmSJEmSZBH3vL1cCPEsEAxsyH7sJ4T49yHnkiRJkiSpmJRS/K+8Kc736EwDngTiARRFCUbeWi5JkiRJUjlQnDE6WYqiJAiRb+yR/FMQkiRJkvSIMMm7ropUnI7OaSHEy4BaCFETGAnse7ixJEmSJEmSSq7IS1dCiF+yf72E+fbyDOB3IBEY/dCTSZIkSZJULEop/pQ3d6voNBNC+AAvAh2AL/LMswHSH2YwSZIkSZKkkrpbR2cBsBXzwOMjeaYL5N+6kiRJkqRHhvwenaIVeelKUZRvFEWpCyxWFKV6np9qiqLITo4kSZIkSY+84nxh4JulEUSSJEmSpAcjKzpFK8736EiSJEmSJJVLsqMjSZIkSdJjqzjfoyNJkiRJ0iNMkV8YWCRZ0ZEkSZIk6bElKzqSJEmSVM7JwchFkxUdSZIkSZIeW7KiI0mSJEnlnCIrOkV6ZDo61q2ewOW9t0ClInn1ehKW/JlvvlXThriMfxNdzepEvT+D1C27AVB7e+AxdxpCpQKNmqTf/yFp5X8IvRXun09BW9EbxWQibecB4r5ZZNHMNm2a4Tl5OKhUJKzcQOyPK/LNF1otXrPGoq9fE2N8IqHvzsRwKxI0arw+GY2+ni+o1ST+s5XYhctzF1SpqLLyGwyR0dwaPs2imevNGIRHgB/GtEyOj5xP4smrBdrUntiXCn3aoXWyZWP1ITnTXVrUod70V7CvV5ljb3xD+H+HcuZ1D/2NxLPXAUi/FcORV+ZYLHPrjwZSuaMfhrQMtr+7kOhT+TNr9Do6LRiJQxUPFKOJa1uOcfCz/PtPtW7+dFk4ilVPTyHqxBXsK7rx4vbZxF8KAyAi6CK7Jy2xWOZm0wdSITvz/jELiStkOzee0Idqfdqgc7Rlec1Xc6bbVHCl5VdvoHO0QahUBH/6J6HbjuPVrgF+k15ErdVgzDJwbPrvROw9Y5G8tWcMxi2gCca0DE6PnE/SySsF2tg3qkb9b95CrdcRvfUY5yf/DIBd/SrU/fw11FZaFIORs+8vIvHYJdy7PoHvhL5gUlAMRs5PWUr8ofMWyQtQa8ZgXLMzn71L5nrfvIVKryNm6zEuZGdusHAUNr4+AGgcbDAkpnIoYELOclYVXGmxey5XPl/B9fn/lTirdasncJnwFkKlImn1ehIW598/9U0b4vKe+fgWOSH3+Abg+f2nWDWsS0bwKSJGTMld5kk/XN59HaHVkHEmhOhpX4DRVOKst9Wu7cuiH7+kSZMGTJk6i7lf/lBou6pVK7Hs1+9xcXEm6NhJBg0eSVZWFjqdjp+XfE3TJg2JjY3jpf5vcu3aTQAmvPcOQwb3w2gyMWbMFDZt3lnivB98Opddew/h4uzE378uKDBfURRmfrWA3fsPo9dbMWPyWOrVrgHAP+s288PSPwB4Y1A/nuveCYDT50L4YMZc0jMyaNvSn4mjhyOEKHFWqXQ9GpeuVCpcJo4g4u1J3Hr+VWy7dkBbvXK+JsbwSKKnfk7K+m35p0fFEvbKKEJfHE7YgBE4Dn0RtbsrAIlLV3Cr1zBCX3wTK7/6WLf2t2hmz6lvc/O1KVx55g3sn26Pzjd/ZscXOmNKTOZKl2HELf0b97FDAbDv2hah1XK1x1tc6z0Spxe7o6ngkbOc8yvPkXn5uuWyZnMP8MO2mhc7Wozh5LgfaTB7WKHtIjYFsbfrBwWmp92K5vioBYT+tbfAPGN6JnsCJrInYKJFOzmVOzTGsZoXv7cdy84Ji2j76eBC2x3/YS1/dniPld0m4+Vfi0rtG+XM09rqaTisCxFBF/Mtk3gtgpVdJ7Oy62SLdnJ8OjbGoZoX/7Yey8H3FvHkzMIz39wcxIbuHxaY3mDUc1xfc5D1nT9gz5vz8M9ePiM2iZ2DvmBtwET2j/qBVt8Mt0hetwA/bKp5sbfFKM6O+5G6RewXdWe/ytmxC9nbYhQ21bxw7egHQK2p/bk8ZyUHAiZwafZyak7pD0DsrpMc6PAeBwImcHrMAurNfcMieQFcA/ywrubF/hajODfuR2oXkbl2dub9LUZhnSfzqde/5lDABA4FTCBy7SGi1h7Kt1ytj14hZmuwZcKqVLhOGkHEW5O42avw45shPJKoKZ+TfMfxDSDh5xVEfTAr/0QhcJ8+nsgJM7jV+3UMYZHY9ehsmbzZYmPjGT1mSpEdnNtmfjqZr775kTr12hAXl8DQIS8BMHTIS8TFJVCnXhu++uZHZn46GYC6dWvSt+9zNPLryNPP9Ofbbz5FpSr5R1HP7p1YMPeTIufv3n+Y6zdDWffnIqa9N5Lpc+YBkJCYxPwly/j9x6/4/cevmL9kGQmJSQBMnzOPaRNGsu7PRVy/GcqeA0eKXH9ZUxSl1H7Km0eio2PVoDaGG6EYboWDwUDKxh3YtG+Vr40hNIKskCtw50Y2GCArCwCh04IwvyQlPYP0I8dz2mSeu4ja081imfWNapF1PZSsm+GQZSBp3U7sAlrka2MX0JKEv7cAkLRxNzYt/cwzFAWVjR7UKoReh5KVhSk5FQCNpxu2Tz1JwoqNFst6m2fXZtxaYT5TjD96Ea2DDVYeTgXaxR+9SEZkfIHpaTeiSTpzHcVUejt61c7NuLBqDwCRxy5h5WCLzR2ZDemZhO4/C4Apy0j0yavYebvkzPcf9wLB3/+HMSOrVDJX7NKMyyvNmWOCLqFztEVfyHaOCbpEeiHbGQW09tYA6BxsSIuIAyDu1DXSIsztE87fRK3XodKVvCjr3tWfsBW7zOs9GoLGwRbdHXl1Hk5o7KxJOBoCQNiKXXh0M584KAposvNqHGzIyM5rTM3IWV5tY1XgrVvSzOHZmRPvkTkxO3P4il24dyt4suPZowXhq3M7727dniDteiQp529YJKtVg9pk5T2+bbjL8a2Q91b6oWMoKan5pqmcHFCyDBiu3QIgbf9RbAPaWiTvbVFRMRw5epysrLu/bzq0b82qVWsB+OWXFTzXowsAPZ7tzC+/mKvcq1atpWOHNtnTu7B8+T9kZmZy9eoNLl26ypP+TUqc9wm/hjg62Bc5f/ueA/ToGoAQgsYN6pKUlExUdCx7Dx6lpX8THB3scXSwp6V/E/YePEpUdCwpKak0blAXIQQ9ugawbff+EueUSl+xOzpCCGshRO2HEULt4YYhPCrnsSEiGrVH8Tslak93fJb/QMUNy0j4+U+MUTH55qvsbbFu14L0g8csllnj6UZWWJ7M4dFoPF3zt/FwxRAWbX5gNGFKSkXt5EDSxj2YUtPx3b0M323/I3bxX5gSkgHwmPQGUXMWoSiWK0Hfpvd2Ie1W7rZJD4tFn6dDUBIqKy2tN86g1bqP8ez2hEXWCWDr5UxyaG7m5LBYbL2ci2yvc7ChSmATbu49DYBbg6rY+bhwfVtwgbb2ldx5Yf0n9FgxGa8nLbdr23g5k5onc2poLDZ3yXynE1/8RbXnW9PryDe0/2U8Ryb/r0CbSk/7E3vqKqZMQ4nzWnk7k55vv4gpsF/ovV1ID4vNbRMai5W3+TVdmLKUmlMH0DboO2p+OJCLM37PaefezZ9We+bS5Nf3OTNmfomzFpU5IywGqzsyW3m7kJEnc0aezLc5tahLZlQCaVfCAXOHrOo7z3FlzkqLZVV7uGHMc3wzRkajKeFJlykuAaFWo6tXCwDbTu3QeLmXaJ0PwtXVmfj4BIxGIwA3b4XhU8ELAJ8KXty4GQqA0WgkISERV1dnfHxyp9+5zMMUERWDV57PFU8PNyKioomIisbLI3fbebrnTvfM297djYg7PlseJSaUUvspb4rV0RFCPAsEAxuyH/sJIf69S/vXhRBHhBClUuczRkQR2vcNbvUYjN2znVC5OOXOVKtwmzmJpN9Xm8+oHgHWDWuDycSldv25HDgYlyHPo63ohW37JzHExJNx+uK9V/KI2dZsBHu7TObYm/Oo9/Er2FTxuPdCFibUKgLnvc3JJRtJuh4FQtBqan/2T19WoG1KZDy/Nh/Nym4fsO/j3wj89i20dtalnrkwVXu25NLyXax+YiQ7Bn5Oq2/fhDzjAhxrVaDJ5H4cem9xGabMVXFwJy5MXcrupm9zYepS6n2Ze0ktav1h9rV5l+DBc/Cd8GIZpiycZ69WRKzel/O42vg+XP9hbb5q1KMqcsIMXMcPx+e3b1FSUlEsOD5Hkh4WIYSLEGKzECIk+/8FzgKFEB2EEMF5ftKFED2z5/0shLiSZ57fvZ6zuHXvacCTwA4ARVGChRDVimqsKMpCYGF2qHt2/4yR0fnORjSebhgjo4sZLc96omLIvHgVfdOGOYP5XKeMwXD9Fom/rb7v9d2NISIarXeezF5uGCLy9/YNkTFovN0wRESDWoXK3gZjfCL2z7QnZfcRMBgxxiaQFnQGfYOaWNXzxa5jC+ye8kfotKjsbPCePZ6w9z5/4JxVhnSi0oCOACQEX8a6gitx2fPuPEsviYxw81rTrkUSs+8MDg2rknot8oHWVX9QIHVf6gBA1PHL2PnkVsrsvF1ICY8rdLmnZg0j4Uo4JxeZL/vp7PQ4165Ij+XmsQHW7o50XfwuG4bOJerEFTIyzVW06JNXSbwWiVN1L6JOFBzQWhy1Bgfi29+cOTb4MjZ5Mtv4uJBaRObC+L70FNv7zzZnO3oRlZUWKxd7MmISsfZ2od2i0ewftYDkB9y+ABWHdKbigAAAEoIvoa+Qm1fv7Vpgv7iz+qf3cSEjzPyavPs+lTMwOeLfA4WOxYk/cBbrKh5oXezJik164Mw+2ZkTszMnZM+z8nbNV70ByAiLzVflscqTGcwdY4+nn+RQp4k50xyb1sDjmebUmNIfjaMtmBRMGVncXPzgl5KNkdGo8xzf1B7Zx4QSyjhxlrAh7wJg3bIZmioVS7zON4cPYtgw8xirZ3sMJCws4q7tY2LicHJyRK1WYzQaqVjBm9DsE8rQW+FUqujDrVthqNVqHB0diImJIzTUPP22vMs8TJ7uroTn+VyJiIzG090NT3c3Dh87kTs9Khr/Jo3MFZy87aOi8XTPX7V/lJSjsTPvA1sVRflMCPF+9uMJeRsoirId8ANzxwi4CGzK02S8oijFLrsW99JVlqIoCXdMs9hWzTh9Hk3lCmh8vECjwbZLe1J3Fu9aqNrDDWGlA0Blb4e+SQOyrpqvrTu9PRiVnS2xn1uuZH5b+skLaKv4oK3gCVoN9t2fInnbgXxtkrcdwLFnIAD2XdqSesA8ZsgQFoVNi8YACGsr9I3rkHn5BtFzf+Zy+4FcDhhM6NjPSD14vESdHIBrSzbnDBKOWH+ECn3M1/GdmtXAkJRa6Fic+6VxtM0ZK6J1scflyVokX7j1wOs7vXRLziDhKxuPUqu3+dq+RxNfMpNSSS0ks//4F9DZW7N32q850zKT0lja+E1+azWG31qNIfLYpZxOjt7FHqEyV0nsK7vjWM2TxOsP3nG48PMW1neazPpOk7mx4SjVXzBndm3qS2ZiauFjcYqQeisGrzb1AXCo4YPaSktGTCJaBxs6/G8swZ/+SdThkAfOCnBzySYOBEzgQMAEotYfxrtPOwAcm9XEkJRK5h15MyPjMSSn4disJgDefdoRteEwYO7kOreqB4BL2wakXjZ/aFlX9cxZ3r5hNVQ67QN3cm5nvj2AOGr9YbyyMzvcI7NDdmavPJkBnNs1JCUkNF8H6ehz09jnP4J9/iO4sXAdV79eXaJODpiPb9rKFdBUyD6+dS3+8e1ucirXWi2OQ14kaWXJ7w6bv2ApT/h35gn/zvfs5Ny2Y+c+evd+GoCBA/vw7xrz59Ga/zYxcGAfAHr3fprtO/bmTO/b9zl0Oh1Vq1aiRo1qHDpsuWEFRWnfpgX/btiKoigcP3UWOztb3N1caN28GfsOBZGQmERCYhL7DgXRunkz3N1csLW14fipsyiKwr8bttKhTYt7P5F0L88BS7N/Xwr0vEf7F4D1iqKk3qNdkYpb0TkthHgZUAshagIjgX33WKb4jKb/a+/Ow6Qorz2Of38gRBSFG6MjLhE1Bi4SN1zARKNovPqYq6LoBRfUqLjcqI+oSQyJEolBE5dojCYmCi4Y4o7mRlFQXCISNewIuCcqLhDBJQgyc+4f9Q404/RMj3T3dE9+H55+6K5+u+pUTy2nTr3VxT8vvZaa60dll5ePn8CnL79O19OPZ/ncBSx7fAodt/8qm1w5gnYbdqbT3n3pevoQ3jriFDps82W+OOzUrEekxNJb7uTTl16j/SZfouspx7Dilb+z2bgs0flg3Hg+uvfBosX87sjr2eLGn0K79iy9+2FWvPR3NjrzOD6ZvYCPH5vK0rsm0O3n57P1hBupXfohC4ddCsD7tz9At58No/sDv8livudhli94rThxNeHdidPYeL+d2GfqL6ldtpyZZ6++muIbk0bx1H7ZkW3PHx/NZofvSftOHek/7Vr+MfYxXrz8brrstA19Rg+jQ9f1qTlgF756/pE88c3z2WC7zeh9+clZR8p24uVf3b9WiU6uvz86nS/335HBT13BymUrmHzuDaveG/jQJdx14HDW3/SL9DnrMN5/8U0GPphddTF7zCPMGzc573i77dGT3c49grqVtURd8MQFo1m+5OOixPzWpOlsvt+OHPL0FdQuW8GUc1bHfNAjl/Dgt7IK084/GkT3w/ZknU4dGfDcNbz0h8nMuuIenv/JWPpefjI9TzmQAKack/2depz4LTbYuobewwbQe9gAAB4ddBnLF3+wVvEumjiNL+23M1+fejW1y1Yw9+zVBwZ9J13GM+my63nfv5HtrzmDdut2YNGk6SxKVyW9cO5v6fHTE9A67albvoK552XzW/PtPeh25N7EylpqP1nBrKG/XKs4cy1OMfebejV1DWLefdJlqy4Vn//9G9Pl5R1YPGn6GldS1Ry2J+/c+9krCIuuto7Fo65l07R9+/C+tH0743hWzFnAv9L2reaqbPu23jf7UnvGEN48/BQAuo2+kg7dt0TrdWLLh29n0YgrWfb0c3Q5/kjW27svtBMf3vEAn/x1etNxtFBNzcZMnfIgG27Ymbq6Os468xS+tuM+fPjhRzww/haGnnY+Cxe+wwU/vITbb7uOi0d8j+kz5nDT6KyP1k2jx3HzmGuYN/cp3n9/CUcfewYAc+cu4K67HmDWjMdYWVvLWWcPp65u7U+7nX/RpTw7bSZLlnzAfocdyxknHcfKlVkftv8ZcDB799uNJ6c8y0FHfYdO667LyB+eA0CXDTfg1BMGM+jkswE47cSjV3Vq/tG5/7v68vK+u7FXvyJeuVtk5ew7I2koMDRn0A3pTE4haiJiYXr+NlDTVGNgEHBlg2GXSLoQmAT8ICKaPNesQspdktYDhgMHAAImACMj4pMCPhuv7rh/s9OoFFvPmMi8Hge2dhgt0nP+Q/xpk0GtHUaLfPvdcVy/xTGtHUbBTn9jLLd1q554AY5dOJaHNzmqtcNokQPevYOJVRTz/u/ewSs7VM/2DWCbmRNp32Gz5htWiNpP32LFey+3dhgt0nHjbYmIsv7gEJCEBgAADdVJREFUzo6b7lm2TGfG2083OW+SJgKN9TAfDtwcEV1z2r4fEY1erSGpGzAT2CwiPs0Z9jbQkayLzMsRcXFT8RRU0Uklo+HpYWZmZhWkkn4ZOSLyZv+S3pHULSIWpqSlqT4DRwH31ic5adz11aDlkkYD5zUXT5OJjqQHaKIvTkQc0twEzMzMzJL7geOBS9P/45toOxi4IHdATpIksv49s5ubYHMVneL9xK2ZmZn9u7sUuEPSScDrZFUbJO0KnBYRJ6fX3YEtgYb3BxkraWOybjTTgWZ/Ir7JRCci1v4GJGZmZlZSdVVyeXlELAb2a2T4c8DJOa9fAzZvpF3/lk6zoD466UqrUUAvYN2cCW7T0gmamZmZlUuhl5ePBi4CrgL2BU6kQu6TZWZm9u+ukjojV5pCk5VOETGJ7HL01yNiBHBw6cIyMzMzW3uFVnSWS2oHvCjpu8CbQOfShWVmZmaFqpY+Oq2h0IrO2cB6ZL+I3Ac4FhhSqqDMzMzMiqHQik4AtwJbAR3SsN8BO5QiKDMzMyuc++jkV2iiMxY4H5gFrP1NSczMzMzKoNBE572IuL+kkZiZmdnn4j46+RWa6Fwk6fdkdwpddZfQiLinJFGZmZmZFUGhic6JQE+y/jn1p64CcKJjZmbWytxHJ79CE53dIqJHSSMxMzMzK7JCE52nJfWKiLkljcbMzMxazH108is00ekLTJf0KlkfHQEREb683MzMzCqWooAsUNJWjQ2PiNeLHlELSBoaETe0ZgwtUW3xQvXFXG3xgmMuh2qLFxxzOVRbvE3Z5ks7l62k88qiaSrXtIqhoF9GTve3+syj1MEVYGhrB9BC1RYvVF/M1RYvOOZyqLZ4wTGXQ7XFa5+D70BuZmZmbVahfXTMzMysQkX4pgX5VHtFp9rOrVZbvFB9MVdbvOCYy6Ha4gXHXA7VFq99DgV1RjYzM7PKtdVGO5RtZ/764pltrzOymZmZWTVyHx0zM7Mq57Mz+bV6RUdSraTpkmZLulPSek20HSHpvHLG11KSDpMUknq2diwNSRouaY6kmek730PS7yX1Su9/lOdzfSVNTZ95QdKIMsZc8PJR4Pi6S5pdrPgKmF59/PWP7uWadilI2lTSOEkvS3pe0p8lfbW148pH0haSxkt6UdIrkq6V9IXWjqs5ja2rZZruWWkdH1ui8Vf0NlzSPpL+1NpxWHG1eqIDLIuInSKiN7ACOK21A1pLg4Gn0v8VQ1I/4NvALukXrfcH/hERJxdwa4+bgaERsRPQG7ijpMGu6XMtH5IqpVpZH3/947XmPqBMJayba5Ak4F5gckRsGxF9gAuAmtaNrHEp3nuA+yJiO2A7oBPw81YNrBn51tUyTf4M4FsRcUyZpmdFUkeU7VFtKm1j+iTwFQBJQ9LRzAxJtzZsKOkUSc+m9++uP9KXdGQ6+p8h6Yk0bHtJf01HRjMlbVeK4CV1Br4BnAQMSsPaSbpO0jxJj6Qj4IHpvT6SHk9HxhMkdStFXEk3YFFELAeIiEUR8ZakyZJ2zZmHq9KR5CRJG6fBmwAL0+dq6xOjdHR2q6Qp6Yj5lBLGD2n5kPTfqcI0TdJESTUN4vkLcKukGkn3pmVhhqQ903jaS/pdms+HJXUqcdyrSOqcvtu/SZol6dA0vLuk+ZJuAWYDW0o6Py3jMyX9pFwxNmFf4NOI+E39gIiYERFPtmJMTekPfBIRoyFbdoFzgCFpXa1Uja6rpZ6opN8A2wAPporSTWm7OS1nOT1B0n1pW/aapO9KGpbaPCPpi6ldo9vnBtPbVtJDafv3pIpUBU/r0jxJYyQtkDRW0v6S/pK2U7unx5QU99OSPnPTaknrN/YdWPWpmERH2RH4QcAsSdsDPwL6R8SOwNmNfOSeiNgtvf8CWXIBcCHwX2n4IWnYacDVqSKxK/BGiWbjUOChiFgALJbUBzgc6A70Ao4D+gFI6gD8ChiYjoxvAi4pUVwAD5PtPBekxOubjbRZH3guIrYHHgcuSsOvAuanpOFUSevmfGYHsh1KP+BCSZuVIvjc5YOsYtY3InYGxgHfy2naC9g/IgYD1wCPp2VhF2BOarMd8Os0n0uAI0oRc9JJq09b3Qt8AgyIiF3IEocrJNVfwbAdcF2Kq0d6vTuwE9BH0t4ljLMQvYHnWzmGltieBvFGxAfAa6QDqgpVyLpadBFxGvAW2XK5PvBoROyeXv9C0vqpaW+y7dpuZNusf6V1cQowJLXJt33OdQNwZtr+nQdcV8TZ+QpwBdAzPY4mOwg9D/ghMA/YK8V9IfCzRsYxnPzfQcWJiLI9qk0llPc7SZqenj8J3AicCtwZEYsAIuKfjXyut6SfAl2BzsCENPwvwBhJd5CVrSFbAYdL2oJsBXyxFDNCdrrq6vR8XHq9Dtm81AFvS3osvd+DbIPxSNrPtSdVTUohIj5KiddeZCvtHyX9oEGzOuCP6fltpO8vIi5Wds7+ALINxmBgn9RufEQsA5aledsduK+IoTe2fPRI8XcDOgKv5rS/P8UDWQI2JM1DLbBU0n8Ar0ZE/TifJ0tES2VZSrCBVQnuz1LSUgdszupTP69HxDPp+QHpMS297kyW+DxRwlitAuRbVyNiTBnDOAA4RKv706wLfDk9fywiPgQ+lLQUeCANn0V24AP5t8/Aqur3nsCdq/N8itl36tWImJWmNQeYFBEhaRbZ+t4FuFlZdT+ADo2MI9938EIR47QyqIREZ40dAUDOgt+UMcBhETFD0gmkHW9EnKas497BwPOS+kTE7ZKmpmF/lnRqRDxavFmAVLLtD3xNUpAlLkHWp6HRjwBzIqJfMeNoStrZTwYmpxX++OY+kvPZl4HrJf0OeE/SRg3b5Hm9thpbPn4FXBkR90vaBxiR8/bHBYxzec7zWrJ+G+VyDLAx0CciPpX0GtkGFNaMXcCoiPhtGWNrzhxgYGsH0QJzaRCvpA2BTYH5rRJRgfKsq2PKGIKAIyJije8pbVtz15+6nNd1rN6njKGR7XOOdsCShut2ETUX40iyhG2AsgsEJjcyjka/g0pVV4WVlnKpmFNXDTwKHFm/M60/79vABsDCdIS8quOcpG0jYmpEXAi8R1YC3gZ4JSKuAcaz+qijmAYCt0bEVhHRPSK2JKs0/BM4QllfnRpWr/DzgY2VdTxEUod0yq4kJPXQmn2TdgIa3pi1Hat3DEeTnSJC0sENTq/Ukp3yAThU0rrpb7UP8GzRg/+sLsCb6XlTydok4HQASe0ldSl1YAXoArybkpx9ga3ytJsAfCcd+SJpc0mblCvIPB4FviBp1Y0QJe0gaa9WjKkpk4D1JA2BbBkgO51xbU7Vr+IUuK6W2gTgzPr1XtLOLfx8o9vneukU4quSjkzjl6Qd1zLmlsjdhpyQp83afgdWISoy0YmIOWTnfh+XNAO4spFmPwamkp2qmpcz/BfKOnnOBp4GZgBHAbPTKZDewC0lCHswn63e3E129PgG2dHlbcDfgKURsYIsqbgszeN0slJuqXQmK9XOlTSTrC/LiAZtPgZ2T99df+DiNPw4sj4604FbgWPSESfATOAx4BlgZDk6TZLFfaek54FFTbQ7G9g3HRE/TzbPrW0ssGuKaQhrLrurRMTDwO3AlNT2LrKdR6uJ7OT8AGB/ZZeXzwFGAW+3Zlz55MQ7UNKLwGKgLiJK2ReuGApZV0ttJNnpnJnp7zyyhZ/Pt33OdQxwUtr+zSHr41guPwdGSZpG/jMba/sdlFWU8V+18S0gykBS53TefSPgr8DXI6Iidw4toez3dD6KiMtbOxaz5ii76u4PZJ3B/9ba8ZgV06Zd/7NsO/O3l7xQVbeAqIQ+Ov8O/iSpK1nH2ZFtIckxqzYR8TT5TxWaVTUXLfJzRcfMzKzK1XTpWbad+TtL51VVRaci++iYmZmZFYNPXZmZmVW5arw1Q7m4omNmZmZtlis6ZmZmVc79bfNzRcfMzMzaLFd0zMzMqpxvAZGfKzpmZmbWZrmiY2ZmVuXcRyc/V3TMzMyszXJFx8zMrMr5d3Tyc0XHzMzM2ixXdMzMzKqc++jk54qOmZmZtVmu6JiZmVU5/45Ofq7omJmZWZvlio6ZmVmVC191lZcrOmZmZtZmOdExMzOzNsunrszMzKqcOyPn54qOmZmZtVmu6JiZmVU5/2Bgfq7omJmZWZvlio6ZmVmV8+Xl+bmiY2ZmZm2WKzpmZmZVzn108nNFx8zMzNosV3TMzMyqnCs6+bmiY2ZmZmUh6UhJcyTVSdq1iXYHSpov6SVJP8gZvrWkqWn4HyV1bG6aTnTMzMyqXJTxsZZmA4cDT+RrIKk98GvgIKAXMFhSr/T2ZcBVEfEV4H3gpOYm6ETHzMzMyiIiXoiI+c002x14KSJeiYgVwDjgUEkC+gN3pXY3A4c1N0330TEzM6tyK1e8qXJNS9JQYGjOoBsi4oYiTmJz4B85r98A9gA2ApZExMqc4Zs3NzInOmZmZlawlNTkTWwkTQQ2beSt4RExvmSB5eFEx8zMzIomIvZfy1G8CWyZ83qLNGwx0FXSOqmqUz+8Se6jY2ZmZpXkWWC7dIVVR2AQcH9k19A/BgxM7Y4Hmq0QOdExMzOzspA0QNIbQD/g/yRNSMM3k/RngFSt+S4wAXgBuCMi5qRRfB8YJuklsj47NzY7Tf/IkJmZmbVVruiYmZlZm+VEx8zMzNosJzpmZmbWZjnRMTMzszbLiY6ZmZm1WU50zMzMrM1yomNmZmZt1v8DPDaLjwIFxP4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化一下\n",
    "plt.figure(figsize=(10, 10))\n",
    "plt.title('Pearson Correlation between Features',y=1.05,size=15)#y=0.5 标题就在正中间  y=2的时候 标题跟图之间空了一大格 size表示字体大小\n",
    "sns.heatmap(train_data_hot_encoded.corr(),linewidths=0.05,vmax=1, fmt= '.3f', square=True,linecolor='black',annot=True)\n",
    "#linewidths=1 表示下图单元格之间的宽度 vmax=1 表示相关系数最大为1  fmt表示小数点位数  square表示格子是否严格的正方形 \n",
    "#linecolor表示相邻空格的那个分界线的颜色  annot=False了以后  放个里面就没有数字了 只有颜色\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    549\n",
       "1    342\n",
       "Name: Survived, dtype: int64"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data[\"Survived\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sizes: [549, 342]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sizes=[train_data[\"Survived\"].value_counts().values[0],train_data[\"Survived\"].value_counts().values[1]]\n",
    "print('sizes:',sizes)\n",
    "# 使用饼图来进行Survived取值的可视化\n",
    "plt.pie(sizes,\n",
    "        labels=[0,1],\n",
    "        autopct = '%3.2f%%', #数值保留固定小数位\n",
    "        ) #数值距圆心半径倍数距离\n",
    "plt.title(\"Survived  \"+\"0:\"+str(train_data[\"Survived\"].value_counts().values[0])+'   1:'+str(train_data[\"Survived\"].value_counts().values[1]))\n",
    "plt.axis('equal')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 不同的Pclass,幸存人数(条形图)\n",
    "sns.barplot(x = 'Pclass', y = \"Survived\", data = train_data);#用seaborns+dataframe的方式真的比 matploylib省很多代码\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 不同的Embarked,幸存人数(条形图)\n",
    "sns.barplot(x = 'Embarked', y = \"Survived\", data = train_data);#这样轻松的可以得到 某个特征中 标签不同类别的分布情况\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征向量的重要程度: [0.11066467 0.24550819 0.050182   0.03175385 0.23235552 0.00669015\n",
      " 0.00580088 0.00770955 0.         0.30933519] <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "# 开始用决策树训练 并得到重要性\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "\n",
    "# 构造CART决策树\n",
    "clf = DecisionTreeClassifier()\n",
    "# 决策树训练\n",
    "clf.fit(train_data_hot_encoded, train_data['Survived'])\n",
    "# 显示特征向量的重要程度\n",
    "coeffs = clf.feature_importances_\n",
    "print(\"特征向量的重要程度:\",coeffs,type(coeffs))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>C</th>\n",
       "      <th>Q</th>\n",
       "      <th>S</th>\n",
       "      <th>female</th>\n",
       "      <th>male</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>886</th>\n",
       "      <td>2</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>887</th>\n",
       "      <td>1</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>888</th>\n",
       "      <td>3</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>23.4500</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>889</th>\n",
       "      <td>1</td>\n",
       "      <td>26.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>890</th>\n",
       "      <td>3</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7500</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>891 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Pclass        Age  SibSp  Parch     Fare  C  Q  S  female  male\n",
       "0         3  22.000000      1      0   7.2500  0  0  1       0     1\n",
       "1         1  38.000000      1      0  71.2833  1  0  0       1     0\n",
       "2         3  26.000000      0      0   7.9250  0  0  1       1     0\n",
       "3         1  35.000000      1      0  53.1000  0  0  1       1     0\n",
       "4         3  35.000000      0      0   8.0500  0  0  1       0     1\n",
       "..      ...        ...    ...    ...      ... .. .. ..     ...   ...\n",
       "886       2  27.000000      0      0  13.0000  0  0  1       0     1\n",
       "887       1  19.000000      0      0  30.0000  0  0  1       1     0\n",
       "888       3  29.699118      1      2  23.4500  0  0  1       1     0\n",
       "889       1  26.000000      0      0  30.0000  1  0  0       0     1\n",
       "890       3  32.000000      0      0   7.7500  0  1  0       0     1\n",
       "\n",
       "[891 rows x 10 columns]"
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data_hot_encoded#10个特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>importance_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.110665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.245508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.050182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.031754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.232356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.006690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.005801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.007710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.309335</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   importance_\n",
       "0     0.110665\n",
       "1     0.245508\n",
       "2     0.050182\n",
       "3     0.031754\n",
       "4     0.232356\n",
       "5     0.006690\n",
       "6     0.005801\n",
       "7     0.007710\n",
       "8     0.000000\n",
       "9     0.309335"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_co = pd.DataFrame(coeffs, columns=[\"importance_\"])\n",
    "df_co"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>importance_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Pclass</th>\n",
       "      <td>0.110665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <td>0.245508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SibSp</th>\n",
       "      <td>0.050182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Parch</th>\n",
       "      <td>0.031754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fare</th>\n",
       "      <td>0.232356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C</th>\n",
       "      <td>0.006690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q</th>\n",
       "      <td>0.005801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>S</th>\n",
       "      <td>0.007710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.309335</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        importance_\n",
       "Pclass     0.110665\n",
       "Age        0.245508\n",
       "SibSp      0.050182\n",
       "Parch      0.031754\n",
       "Fare       0.232356\n",
       "C          0.006690\n",
       "Q          0.005801\n",
       "S          0.007710\n",
       "female     0.000000\n",
       "male       0.309335"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 下标设置为Feature Name\n",
    "df_co.index = train_data_hot_encoded.columns\n",
    "df_co"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>importance_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q</th>\n",
       "      <td>0.005801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C</th>\n",
       "      <td>0.006690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>S</th>\n",
       "      <td>0.007710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Parch</th>\n",
       "      <td>0.031754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SibSp</th>\n",
       "      <td>0.050182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pclass</th>\n",
       "      <td>0.110665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fare</th>\n",
       "      <td>0.232356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <td>0.245508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.309335</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        importance_\n",
       "female     0.000000\n",
       "Q          0.005801\n",
       "C          0.006690\n",
       "S          0.007710\n",
       "Parch      0.031754\n",
       "SibSp      0.050182\n",
       "Pclass     0.110665\n",
       "Fare       0.232356\n",
       "Age        0.245508\n",
       "male       0.309335"
      ]
     },
     "execution_count": 201,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_co.sort_values(\"importance_\", ascending=True, inplace=True)#排序\n",
    "df_co"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化\n",
    "df_co.importance_.plot(kind=\"barh\")\n",
    "plt.title(\"Feature Importance\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
